Java 是否需要为tomcat的pkcs12证书添加Ca证书

Java 是否需要为tomcat的pkcs12证书添加Ca证书,java,tomcat,ssl,openssl,Java,Tomcat,Ssl,Openssl,我正在从客户处导入证书和密钥,并为tomcat创建PKCS12证书。tomcat被配置为使用此证书作为密钥库。我是否也需要从客户处导入CA证书?如果是,为什么 如果颁发您的证书的CA证书是一个“根”CA证书(即,它是自签名的),那么这无关紧要:如果验证该证书的一方在其信任锚中还没有该证书,则没有任何东西会使它信任它 当CA证书是中间CA证书时,它通常更有用。在这种情况下,服务器提供完整的证书链是相关的(根CA除外,出于上述原因,根CA是可选的)。由于远程方可能没有这些中间CA证书作为已知的信任锚

我正在从客户处导入证书和密钥,并为tomcat创建PKCS12证书。tomcat被配置为使用此证书作为密钥库。我是否也需要从客户处导入CA证书?如果是,为什么

如果颁发您的证书的CA证书是一个“根”CA证书(即,它是自签名的),那么这无关紧要:如果验证该证书的一方在其信任锚中还没有该证书,则没有任何东西会使它信任它

当CA证书是中间CA证书时,它通常更有用。在这种情况下,服务器提供完整的证书链是相关的(根CA除外,出于上述原因,根CA是可选的)。由于远程方可能没有这些中间CA证书作为已知的信任锚,但可能信任颁发该中间CA证书的CA证书,这使得他们更有可能构建从其信任锚到证书的信任链以进行验证

严格地说,您不需要提供完整的链,但这样做会使您的证书更有可能被接受

(这或多或少与中的问题相同。此外,您谈论的是PKCS#12存储,因此您通常会根据正确的“别名”(使用Java术语)导入CA文件。)


这就是说,私钥通常应该保持私密性。如果您试图实现自己的CA,那么在不将私钥发送到任何地方的情况下,会有一个PKCS#12文件作为回报(如果用户选择从那里导出他们的cert+密钥)。

嘿,这向我解释了很多:)现在,我需要在创建PKCS#12证书时添加中间证书吗?或者我需要在其他地方安装它们。我想我应该为向客户上传ca证书提供单独的上传对话。是的,使用该链创建PKCS#12文件。它与向客户上传CA证书有什么关系?客户将提供他的证书和密钥。我正在开发将安装在客户环境中的产品。所以,通常当客户从UI提供证书和密钥时,我也应该要求CA证书。啊,对不起,我误解了部分问题…我会说,提供这样的服务通常是不好的做法。私钥应该保持私密性。是的,它必须保持私密性。但是,管理员将配置此产品,以便上传私钥时不会造成伤害。但我仍然认为这不应该来自UI。