将证书导入密钥库,证书链为空
Import Certificates into keystore, certificate chain is null
我们目前正在开发一个 java 客户端应用程序,它与
服务器通过 ssl 安全连接。我们的设计要求服务器
使用受信任的证书对客户端进行身份验证。这
证书链如下所示:
<SOME CA Root certificate>
+- <SOME CA Intermediate certificate>
+- <Our companies certificate>
最初,我们认为这很简单:生成一个任意的空密钥库,
导入 CA-root,CA-intermediate 最后我们自己的证书,分发
这个密钥库在客户中完成。为此,我们使用了 pem 文件
包含签名的 public 密钥。导入我们告诉的 CA-Root-Key
将其标记为受信任的密钥库。
但是每次访问keystore.getCertificateChain
returnsnull
.
我们已经通过 keytool
和 KeyStoreExplorer
检查了所有证书都是
按预期在密钥库中可用(它们是),而且,
各自主题的密钥标识符和权限密钥匹配(它们匹配)。我们
还确保以正确的顺序完成导入:首先是 CA,
然后是中级,然后是我们公司的证书。
我们去了我们自己公司的网站(firefox说的是,证书是
好)并从那里下载了整个证书链(如 pem)以进行管理
原来的 pem 文件已损坏,但没有任何变化。
我们哪里做错了?我们是否必须明确设置证书链?如何
我们能否获得详细信息,getCertificateChain
中的哪一步失败了?
您需要导入链的根证书作为受信任的CA证书。不是整个链条。 KeyStore.getCertificateChain()
仅适用于私钥条目,而这不是。
我们目前正在开发一个 java 客户端应用程序,它与 服务器通过 ssl 安全连接。我们的设计要求服务器 使用受信任的证书对客户端进行身份验证。这 证书链如下所示:
<SOME CA Root certificate>
+- <SOME CA Intermediate certificate>
+- <Our companies certificate>
最初,我们认为这很简单:生成一个任意的空密钥库, 导入 CA-root,CA-intermediate 最后我们自己的证书,分发 这个密钥库在客户中完成。为此,我们使用了 pem 文件 包含签名的 public 密钥。导入我们告诉的 CA-Root-Key 将其标记为受信任的密钥库。
但是每次访问keystore.getCertificateChain
returnsnull
.
我们已经通过 keytool
和 KeyStoreExplorer
检查了所有证书都是
按预期在密钥库中可用(它们是),而且,
各自主题的密钥标识符和权限密钥匹配(它们匹配)。我们
还确保以正确的顺序完成导入:首先是 CA,
然后是中级,然后是我们公司的证书。
我们去了我们自己公司的网站(firefox说的是,证书是 好)并从那里下载了整个证书链(如 pem)以进行管理 原来的 pem 文件已损坏,但没有任何变化。
我们哪里做错了?我们是否必须明确设置证书链?如何
我们能否获得详细信息,getCertificateChain
中的哪一步失败了?
您需要导入链的根证书作为受信任的CA证书。不是整个链条。 KeyStore.getCertificateChain()
仅适用于私钥条目,而这不是。