【发布时间】:2016-10-26 16:43:09
【问题描述】:
我们目前正在开发一个 java 客户端应用程序,它与 服务器通过 ssl 安全连接。我们的设计要求服务器 使用受信任的证书对客户端进行身份验证。这 证书链如下所示:
<SOME CA Root certificate>
+- <SOME CA Intermediate certificate>
+- <Our companies certificate>
最初,我们认为这很简单:生成一个任意的空密钥库, 导入 CA-root、CA-intermediate,最后导入我们自己的证书,分发 客户端之间的这个密钥库并完成。为此,我们使用了 pem 文件 包含签名的公钥。导入我们告诉的 CA-Root-Key 将其标记为受信任的密钥库。
但是,每次访问 keystore.getCertificateChain 都会返回 null。
我们已通过 keytool 和 KeyStoreExplorer 检查所有证书
按预期在密钥库中可用(它们是),而且,
相应主题的密钥标识符和权限密钥匹配(它们匹配)。我们
还确保导入以正确的顺序完成:第一个 CA,
然后是中级证书,然后是我们公司的证书。
我们去了我们自己的公司网站(firefox 说,证书是 好)并从那里下载整个证书链(作为pem)来统治 出,原来的 pem 文件已损坏,但没有任何变化。
我们哪里出错了?我们是否必须明确设置证书链?如何
我们可以获取详细信息,getCertificateChain 中的哪个步骤失败了?
【问题讨论】:
标签: java ssl certificate keystore keytool