使用预生成的私钥为 tomcat 安装 SSL Thawte 证书

使用预生成的私钥为 tomcat 安装 SSL Thawte 证书

我收到了一堆需要安装到 tomcat 服务器的 SSL 证书,通常这很容易。但是,这些证书的私钥已在其他地方生成,并与私钥和所有 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 -file Primary.crt -keystore keystore.key
  2. keytool -import -trustcacerts -alias Secondary -file Secondary.crt -keystore keystore.key
  3. openssl pkcs12 -export -in 域.crt -inkey 域.key > server.p12
  4. keytool -importkeystore -srckeystore server.p12 -destkeystore keystore.key -srcstoretype pkcs12

因此,即使我已经导入了主要和次要中间证书,但它们似乎并不是导入的 pkcs12 生成证书链的一部分。


SSL 检查器发出的错误消息

请在您的 Web 或应用程序服务器上安装或替换以下中级 CA 证书,然后再次执行此测试。

------证书 2------

--颁发给--组织:Thawte, Inc.

组织单位:域验证 SSL

通用名称:Thawte DV SSL

CA国家:美国

-- 发布者 -- 组织:thawte, Inc.

组织单位:(c) 2006 thawte, Inc. - 仅供授权使用

组织单位 2:认证服务司

通用名称:thawte Primary Root CA 国家:美国

答案1

一些应用程序(我不记得 Tomcat 是否是其中之一)喜欢将证书链作为与服务器证书相同的密钥库条目的一部分,而不是作为单独的项目。

为此,首先从密钥库中删除两个 CA 证书:

keytool -delete -alias Primary -keystore keystore.key
keytool -delete -alias Secondary -keystore keystore.key

接下来,创建一个包含您的证书及其 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 链显示为单个密钥库条目。

相关内容