java - 在java中使用证书

标签 java ssl certificate

我一直在尝试多种解决方案以在我的 soap 客户端(身份验证)中使用受密码保护的 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

谢谢

最佳答案

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

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

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

关于java - 在java中使用证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14356657/

相关文章:

php - 付款成功后使用 pay u money 在网站上重定向的问题

ios - 在 iPad 中运行时配置文件错误

c# - 解析 "Certificate Policies"扩展

java - 如何通过按钮和另一个方法调用一个方法

java - Spring MVC : Error 400 The request sent by the client was syntactically incorrect

wcf - 群集环境中的相互 WCF 证书身份验证/SSL

ios Parse APNS 无证书-证书无效

java - 我无法运行java应用程序

Java:子类中父类的变量未初始化并保留 null

android - 如何在android webview中不使用ssl加载https url