0

我一直在尝试几种解决方案来在我的肥皂客户端(身份验证)中使用受密码保护的 p12 证书。我无法让它工作。谁能指出我正确的方向。我最近的测试:

  1. keytool -importkeystore -srckeystore mycert.p12 -destkeystore cert/cacerts -srcstoretype PKCS12 -deststoretype JKS -srcstorepass 123456789 -deststorepass changeit -srcalias 1 -destalias mycert
  2. System.setProperty("javax.net.ssl.trustStore","cert/cacerts"); System.setProperty("javax.net.debug", "ssl");

结果:

致命的,描述 = certificate_unknown

谢谢

4

1 回答 1

0

您应该首先查看keystore 和 truststore 之间的区别。如果您想使用 PKCS#12 文件进行客户端身份验证,则需要将其用作密钥库。(如果默认 CA 不能信任服务器证书,您可能还需要设置信任库属性,但这是另一个问题。)

您根本不需要将 p12 文件转换为 JKS。

如果您的客户端使用系统属性来初始化其 SSL 上下文(检查其文档),您应该能够通过指向javax.net.ssl.keyStore它、设置和正确设置javax.net.ssl.keyStoreType来配置您的 p12 文件。在大多数情况下,应该在尝试任何 SSL 连接之前设置这些属性,因为它们只会被读取一次。PKCS12javax.net.ssl.keyStorePassword

于 2013-01-16T11:46:09.240 回答