【发布时间】:2014-09-08 16:21:26
【问题描述】:
我正在从我的客户那里导入证书和密钥,并为 tomcat 创建 PKCS12 证书。 tomcat 配置为将此证书用作密钥库。我还需要从客户那里导入 CA 证书吗?如果是,为什么?
【问题讨论】:
我正在从我的客户那里导入证书和密钥,并为 tomcat 创建 PKCS12 证书。 tomcat 配置为将此证书用作密钥库。我还需要从客户那里导入 CA 证书吗?如果是,为什么?
【问题讨论】:
如果颁发您的证书的 CA 证书是“根”CA 证书(即,它是自签名的),则无关紧要:如果验证该证书的一方尚未在其信任锚中拥有该证书,则没有任何关系会让它信任它。
当 CA 证书是中间 CA 证书时,它通常更有用。在这种情况下,服务器提供完整的证书链是相关的(根 CA 除外,由于上述原因,根 CA 是可选的)。由于远程方可能没有这些中间 CA 证书作为已知的信任锚,但可能信任颁发该中间 CA 证书的 CA 证书,这使得他们更有可能建立从其信任锚到证书的信任链验证。
严格来说,您不需要提供完整的链,但这样做会使您的证书更有可能被接受。
(这与this question 中的问题或多或少相同。此外,您说的是 PKCS#12 存储,因此您通常会针对正确的“别名”导入 CA 文件(使用Java 术语)无论如何。)
话虽如此,私钥通常应该保持私密。如果您尝试实现自己的 CA,则有 mechanisms to do this in the browser,无需将私钥发送到任何地方,这将使用户获得 PKCS#12 文件作为回报(如果他们选择从那里导出他们的证书+密钥) .
【讨论】: