我有两个文件:
mycer.cer
mykey.key
我需要创建一个SslContext
以使用 Java 通过 SSL 连接到另一台服务器。我试图找出如何SslContext
直接从这些文件中创建对象。
这篇文章可能是重复的,但我试图通过一个示例找到一个清晰的解释来创建SslContext
,但没有找到清楚的东西。
获取 p12 格式的证书,据我所知,您不能使用 cert 文件,有一些实用程序可以做到这一点(如 openssl)或源(从您生成下载证书的位置)可以为您提供 p12 格式。
openssl pkcs12 -export -in mycer.crt -inkey mykey.key -out mycer.p12 -name "mycer"
然后检查下面的 url,它应该包含你想要的信息。
希望它有帮助!
这个问题已经在这里得到了解答:在 Java 中,仅使用 PEM 文件创建 SSLContext 的最简单方法是什么?
我为这个用例创建了一个库来简化配置。它在封面下使用充气城堡。用法见下:
X509ExtendedKeyManager keyManager = PemUtils.loadIdentityMaterial("certificate-chain.cer", "mykey.key");
X509ExtendedTrustManager trustManager = PemUtils.loadTrustMaterial("mycer.cer");
SSLFactory sslFactory = SSLFactory.builder()
.withIdentityMaterial(keyManager)
.withTrustMaterial(trustManager)
.build();
SSLContext sslContext = sslFactory.getSslContext();
要使用上述设置,您可以使用此库:
<dependency>
<groupId>io.github.hakky54</groupId>
<artifactId>sslcontext-kickstart-for-pem</artifactId>
<version>6.1.1</version>
</dependency>