如何在 Java KeyStore 中加载多个 SSL 证书?

Pet*_*ter 2 java ssl android

我有两个 SSL 证书文件。第一个标记为“OU=Certificate Authority”,第二个标记为“OU=Root Certificate”。我们的 C++ 应用程序加载这两个证书以进行正确的客户端/服务器握手。

我现在需要在我的 Android 代码中使用这些证书。我已经能够使用CertificateFactory.generateCertificate()方法成功读取这些证书。

接下来,我需要将这些证书存储在密钥库中。这是我找到的示例代码:

    String keyStoreType = KeyStore.getDefaultType();
    KeyStore keyStore = KeyStore.getInstance(keyStoreType);
    keyStore.load(null, null);
    keyStore.setCertificateEntry("ca", ca);
Run Code Online (Sandbox Code Playgroud)

我对如何存储根证书感到困惑。我是否只需setCertificateEntry()再次调用第二个证书并传入一些随机别名?

我在 KeyStore 上看到了另一种名为setEntry. 我应该改用这种方法吗?问候。

use*_*421 5

只需使用另一个别名再次调用它。

例子:

keyStore.setCertificateEntry("ca", ca);
keyStore.setCertificateEntry("debug", ca2);
Run Code Online (Sandbox Code Playgroud)

  • @AstroCB。事实上,确实如此。 (2认同)
  • 就那么简单。通过更改,看起来我的客户端能够连接到服务器。猜猜别名对于客户端/服务器握手没有任何意义。感谢您的帮助。 (2认同)