从预先生成的私钥安装Tomcat的SSL Thawte证书

我已经收到一堆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检查实际上失败了。

这就是我所做的:

  1. keytool -import -trustcacerts -alias主要文件Primary.crt -keystore keystore.key
  2. keytool -import -trustcacerts -alias次要文件Secondary.crt -keystore keystore.key
  3. openssl pkcs12 -export -in domain.crt -inkey domain.key> server.p12
  4. keytool -importkeystore -srckeystore server.p12 -destkeystore keystore.key -srcstoretype pkcs12

所以,即使我已经导入了主要和次要中间证书,看起来他们不是导入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链显示为单个密钥库条目。