使用给定的p12证书连接到https站点

使用给定的p12证书连接到https站点,第1张

使用给定的p12证书连接到https站点

如果要尝试对SSL配置进行编码,则可以使用提供给您的P12文件,而不必将其转换为JKS。另外,您将需要使用P12中的私钥,而不仅仅是使用复制到JKS中的证书。不知道这是否能直接满足您的需求,但这可能使您走上正确的道路:

        KeyStore clientStore = KeyStore.getInstance("PKCS12");        clientStore.load(new FileInputStream("test.p12"), "testPass".toCharArray());        KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());        kmf.init(clientStore, "testPass".toCharArray());        KeyManager[] kms = kmf.getKeyManagers();        KeyStore trustStore = KeyStore.getInstance("JKS");        trustStore.load(new FileInputStream("cacerts"), "changeit".toCharArray());        TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());        tmf.init(trustStore);        TrustManager[] tms = tmf.getTrustManagers();        SSLContext sslContext = null;        sslContext = SSLContext.getInstance("TLS");        sslContext.init(kms, tms, new SecureRandom());        HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());        URL url = new URL("https://www.testurl.com");        HttpsURLConnection urlConn = (HttpsURLConnection) url.openConnection();

以这种方式配置trustStore是可选的。您可以使用P12链中的所有证书来创建JKS,或者只是确保它们位于JRE的cacerts文件中。至于keytool,作为参考,您可以在P12上运行keytool命令(指定-
storetype pkcs12),但不能将P12导入到JKS中。您也不能仅使用keytool命令从P12导出密钥。

目前,我没有设置服务器来测试此代码,因此请试一下,看看是否仍然收到403错误。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5428391.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存