7

我有两个文件:

  • mycer.cer
  • mykey.key

我需要创建一个SslContext以使用 Java 通过 SSL 连接到另一台服务器。我试图找出如何SslContext直接从这些文件中创建对象。

这篇文章可能是重复的,但我试图通过一个示例找到一个清晰的解释来创建SslContext,但没有找到清楚的东西。

4

2 回答 2

1

获取 p12 格式的证书,据我所知,您不能使用 cert 文件,有一些实用程序可以做到这一点(如 openssl)或源(从您生成下载证书的位置)可以为您提供 p12 格式。

openssl pkcs12 -export -in mycer.crt -inkey mykey.key -out mycer.p12 -name "mycer"

然后检查下面的 url,它应该包含你想要的信息。

Java HTTPS 客户端证书认证

希望它有帮助!

于 2017-05-20T03:05:29.553 回答
0

这个问题已经在这里得到了解答:在 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>
于 2020-12-05T17:30:46.653 回答