我正在从我的客户导入证书和 key 并为 tomcat 创建 PKCS12 证书。 tomcat 配置为使用此证书作为 keystore 。我还需要导入客户的 CA 证书吗?如果是,为什么?
最佳答案
如果颁发您的证书的 CA 证书是“根”CA 证书(即它是自签名的),则没有关系:如果验证该证书的一方尚未将其包含在其信任 anchor 中,则无所谓会让它信任它。
当 CA 证书是中间 CA 证书时,它通常更有用。在这种情况下,服务器提供完整的证书链是相关的(根 CA 除外,由于上述原因,它是可选的)。由于远程方可能没有这些中间 CA 证书作为已知的信任 anchor ,但可能信任颁发该中间 CA 证书的 CA 证书,这使得他们更有可能建立从他们的信任 anchor 到证书的信任链进行验证。
严格来说,您不需要出示完整的链条,但这样做会使您的证书更有可能被接受。
(这或多或少与 this question 中的问题相同。此外,您谈论的是 PKCS#12 存储,因此您通常会针对正确的“别名”导入 CA 文件(使用Java 术语)无论如何。)
话虽这么说,私钥通常应该保持私密。如果您尝试实现自己的 CA,则有 mechanisms to do this in the browser ,无需将私钥发送到任何地方,这将使用户获得一个 PKCS#12 文件作为返回(如果他们选择从那里导出他们的证书+ key )。
关于java - tomcat的pkcs12证书是否需要加ca证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24809584/