导入证书作为PrivateKeyEntry

我正在Tomcat服务器上安装SSL,并遵循发行者https://knowledge.rapidssl.com/support/ssl-certificate-support/index?page=content&actp=CROSSLINK&id=SO16181的以下说明,该消息指出:


Verify the following information:


The SSL certificate is imported into the alias with the "Entry Type" of 

PrivateKeyEntry or KeyEntry.  If not, please import the certificate into 

the Private Key alias.

导入证书(tomcat)时,我正在使用:


keytool -import -trustcacerts -alias your_alias_name -keystore your_keystore_filename

-file your_certificate_filename

但是当我这样做时,它会导入为trustCertEntry


Keystore type: JKS

Keystore provider: SUN


Your keystore contains 3 entries


primaryca, Jul 26, 2014, trustedCertEntry,

Certificate fingerprint (SHA1): <snip>

tomcat, Jul 26, 2014, trustedCertEntry,

Certificate fingerprint (SHA1):  <snip>

secondaryca, Jul 26, 2014, trustedCertEntry,

Certificate fingerprint (SHA1):  <snip>

如何使别名tomcat导入为PrivateKeyEntry?


德玛西亚99
浏览 1601回答 3
3回答

qq_笑_17

摆脱-trustcacerts选择。这不是CA证书。这是您的证书。并使用私钥已具有的相同别名。

慕码人8056858

这些CA准则有点误导。@EJP正确地表示您不应该使用-trustcacerts您的证书。另外,此CA文档建议在单独的操作中导入主要和中间CA证书,这将为您提供如下结果:primaryca, Jul 26, 2014, trustedCertEntry,Certificate fingerprint (SHA1): <snip>secondaryca, Jul 26, 2014, trustedCertEntry,Certificate fingerprint (SHA1):&nbsp; <snip>tomcat, Jul 26, 2014, PrivateKeyEntry,Certificate fingerprint (SHA1):&nbsp; <snip>不幸的是,像这样将CA证书导入您的密钥库中是没有意义的。(在信任库中很有用,但是您使用的CA可能已经在默认信任库中。)实际上,在密钥库中具有用于证书的CA证书很有用,以便在需要中间证书时提供完整的证书链。但是,即使密钥管理器(除非是自定义实现)也不会为您建立链,即使它在您的最终实体证书(在PrivateKeyEntry中)旁边找到合适的CA证书也是如此。您需要针对私钥所在的条目将这些证书作为链一起导入。为此,将证书合并到一个文本文件(PEM编码)中,首先是服务器证书,然后是用于颁发证书的证书,依此类推。然后,使用该私钥别名将该文件导入您的密钥库。(这与该问题完全相同,但是具有服务器证书。)(我不确定您的CA是否已将您的证书文件作为一个链条提供,但是通常,您至少在一个文件中获得证书,而在另一个文件中获得中级CA证书。您链接到的文档似乎具有误导性,因为它们两者之间的间隔不超过一个--BEGIN/END CERT--,但不知何故,他们的示例屏幕截图针对该单个别名的证书长度为4。)正如@jww在对您的问题的评论中所指出的那样,您不需要此链中的“根” CA证书(自签名证书),因为您的客户已经信任它,或者它没有理由发送时请信任它。在您的链中拥有它并没有错,但这是没有意义的,并且可能会增加一些网络开销。
打开App,查看更多内容
随时随地看视频慕课网APP