我正在创建一个Java程序来从服务器获取信息,但我必须从Java程序与服务器执行ssl握手。
我有myfilercert.cer
文件证书用于身份验证,但我不知道如何用java加载该证书,以便java程序可以与我想要从中获取信息的服务器进行“握手”。从哪里开始?
您可以使用Apache HttpClient(或者实际上只使用它所需的类来使用SSLContextBuilder
),然后就会像这样:
SSLContextBuilder sslContextBuilder = SSLContextBuilder.create();
sslContextBuilder.loadTrustMaterial(new File("yourTrustStore.jks"), "thePassWord");
SSLContext sslContext = sslContextBuilder.build();
HttpsURLConnection httpsURLConnection = (HttpsURLConnection) (new URL("https://thesite.com").openConnection());
httpsURLConnection.setSSLSocketFactory(sslContext.getSocketFactory());
KeyStore keyStore = KeyStore.getInstance("BKS",
BouncyCastleProvider.PROVIDER_NAME);
byteArrayInputStream = new ByteArrayInputStream(keyStoreBytes);
keyStore.load(byteArrayInputStream, keyStorePassword);
Certificate[] certificates = keyStore.getCertificateChain("theCertAlias");
Certificate certificate = certificates[0];
我试了几个解决方案,为了前任。HTTPS/SSL上的Java客户端证书或获取javax.net.ssl.sslHandShakeException:收到致命警报:handshake_failure错误,从.p12文件中收到的证书和从浏览器导出的证书都不起作用... 更新2: 我尝试了以下方法:https://stackoverflow.com/a/11908693/1215791,并设法访问了Se
首先,我必须说我不是一个Java开发人员,而是一个系统管理员。 我想,当Java进程启动时,没有和属性,其中的证书始终被加载和使用。 但是我发现一个JBoss战会加载另一个密钥库,并忽略默认缓存中的证书。 问题是PKIX典型的错误消息 但是我确信需要的证书在默认的cacerts中。 我不得不把属性来阐明这个问题,并发现加载了另一个密钥库——一个密钥库有一个旧的过期证书,我不知道。 在第二个密钥库上
我尝试使用REST-assured来执行一些需要SSL身份验证的API调用。我收到: . p12文件 密码 .cert.pem文件 .key.pem文件 当我把这一切放在例如。邮递员,它只是工作。现在我想在我的Java代码中使用这个...这就是我被困的地方。我看到人们使用单独的工具来导入密钥等,但我想在代码中做任何事情:) 我发现有人在使用: 其中KEY_STORE_*是P12文件密码(?),信任
假设我编写了两个Java应用程序:和,它们在两个独立的服务器上部署和运行(部署到和部署到
问题内容: 我有以下代码使用SSL将服务器与客户端连接,现在我想添加客户端身份验证: (我有一个服务器密钥库(JCEKS类型)和一个客户端密钥库(JKS类型),服务器使用了一个信任库(证书),在其中我导入了两个证书,因为我也想使用此信任库进行客户端身份验证) 客户代码: 服务器代码: 在此先感谢您的帮助。 编辑:我在服务器端添加此代码: 但是,如果我删除cacerts中的客户端证书,则连接不会给我
我在Playstore和google send the mail上标注了一个问题,我的应用程序不安全,因为使用了SSL。 目前在我的应用程序中,我有一个,它是加载链接,并且包含https URL。 在web设置上,我是这样做的: 有没有人可以建议我如何做到这一点,使我的可以处理https url和Playstore不标记我的应用程序为不安全?