我已经收到一堆SSL证书,我需要安装到Tomcat服务器,通常这很容易。 但是,这些证书的私钥已在其他位置生成,并使用私钥和所有SSL证书进行移交。
Keytool不允许我导入私钥,直接导致我无法按照标准过程生成私钥,然后发送它来获得证书。 我发现了另一个问题,“我已经能够” https://stackoverflow.com/questions/906402/importing-an-existing-x509-certificate-and-private-key-in-java-keystore-to-use-i “跟随并设法获得与Tomcat合作的密钥仓库。 但是,似乎中介证书不能正确关联,因此SSL检查实际上失败了。
这就是我所做的:
所以,即使我已经导入了主要和次要中间证书,看起来他们不是导入pkcs12生成证书链的链条的一部分。
来自SSL检查器的错误消息
请在您的Web或应用程序服务器上安装或更换以下中间CA证书,然后再次执行此testing。
——证书2 ——
– 发给 – 组织:Thawte,Inc.
组织单位:域validation的SSL
通用名称:Thawte DV SSL
CA国家:US
– 发布者 – 机构:thawte,Inc.
组织单位:(c)2006 thawte,Inc. – 仅供授权使用
组织单元2:authentication服务司
通用名称:thawte Primary Root CA国家:US
有些应用程序(我不记得Tomcat是否是其中之一)喜欢将证书链作为与服务器证书相同的密钥库条目的一部分,而不是单独的项目。
为此,首先从密钥库中删除两个CA证书:
keytool -delete -alias Primary -keystore keystore.key keytool -delete -alias Secondary -keystore keystore.key
接下来,创build一个包含您的证书及其CA链的PKCS#7文件:
openssl crl2pkcs7 -nocrl -certfile domain.crt -certfile Secondary.crt \ -certfile Primary.crt -out domain.p7b
然后将其导入到您现有的密钥库(这将覆盖证书,但保留现有的私钥):
keytool -importcert -alias domain -file domain.p7b -keystore keystore.key
确保您指定的别名与密钥库中已有的证书/密钥的别名匹配。
现在,密钥库列表( keytool -list -keystore keystore.key )应该将证书及其CA链显示为单个密钥库条目。