tomcat 中的 GoDaddy SSL 证书安装...没有证书与私钥匹配

GoDaddy SSL Certificate installation in tomcat... No certificate matches private key

生成 Tomcat 密钥库

keytool -keysize 2048 -genkey -alias tomcat -keyalg RSA -keystore
    tomcat.keystore

生成证书密钥库

keytool -genkey -alias tomcatCert -keyalg RSA -keystore tomcat.keystore

生成密钥

keytool -certreq -alias tomcat -file csr.txt -keystore tomcat.keystore -storepass pa$$word

合并证书

cat mydomain.crt gd_bundle-g2-g1.crt > combinedcerts

创建 P12 密钥库

keytool -importkeystore -srckeystore tomcat.keystore -destkeystore tomcatkey.p12 -deststoretype PKCS12 -storepass pa$$word

生成 PEM

openssl pkcs12 -in tomcatkey.p12 -out tomcatkey.pem -nodes

正在将剩余的 CRT 文件导出到密钥库...

openssl pkcs12 -export -chain -CAfile gd_bundle-g2-g1.crt -in combinedcerts -inkey tomcatkey.pem -out new.tomcat.keystore -name tomcat -passout pass:pa$$word

在这最后一步中,我收到以下错误:“没有证书与私钥匹配

同样的步骤在几年前就奏效了,服务器是一样的...只有 JDK 是 8u131 和以前的 8u45。

有人可以指导我我可能做错了什么吗?谢谢!

Generate the Tomcat KeyStore

keytool -keysize 2048 -genkey -alias tomcat -keyalg RSA -keystore
tomcat.keystore

没有。这一步可以创建密钥库文件,但更重要的是它创建了 RSA 类型的密钥对。

Generate the Certificate KeyStore

keytool -genkey -alias tomcatCert -keyalg RSA -keystore tomcat.keystore

没有。这一步没有 'generate the certificate keystore',不管它应该是什么。除了在 same 密钥库中以另一个别名创建另一个密钥对外,它什么都不做,并且该别名在整个过程的其余部分保持未使用状态。通过检查,它与上一步相同,除了毫无意义的别名更改和丢失的密钥大小,这使得它变得毫无用处。省略.

Generate the Keys

keytool -certreq -alias tomcat -file csr.txt -keystore tomcat.keystore -storepass pa$$word

您已经在第一步中生成了密钥。此步骤生成证书签名请求 (CSR)。

Merge certs

cat mydomain.crt gd_bundle-g2-g1.crt > combinedcerts

此处缺少您提交 CSR 并签署的步骤。据推测,此过程的结果是 mydomain.crt 和 Godaddy 捆绑文件。

Create P12 keystore

keytool -importkeystore -srckeystore tomcat.keystore -destkeystore tomcatkey.p12 -deststoretype PKCS12 -storepass pa$$word

为什么?如果您想要 P12 密钥库,您可以在步骤 1 和后续步骤中使用 -storetype PKCS12。这里缺少一个步骤,您将连接的证书导入回原始密钥库。

Generate PEM

openssl pkcs12 -in tomcatkey.p12 -out tomcatkey.pem -nodes

为什么?

Exporting remaining CRT files to keystore...

openssl pkcs12 -export -chain -CAfile gd_bundle-g2-g1.crt -in combinedcerts -inkey tomcatkey.pem -out new.tomcat.keystore -name tomcat -passout pass:pa$$word

为什么?

我不知道您为什么要执行这些 OpenSSL 步骤。 Tomcat 已经可以处理 tomcat.keystoretomcat.p12

And in this last step I'm getting the following error: "No certificate matches private key"

我不知道你为什么要执行这些步骤中的大部分。您永远不会使用 tomcatCert 别名,并且您通过一个而不是另外三个毫无意义的步骤来放置一个已经完全足够的 tomcat.keystore 文件。

This same steps worked a couple of years ago, server is the same... only JDK is 8u131 vs 8u45 from before.

我怀疑。它们贴错标签、多余、不完整且完全不连贯。更可能的是,有人只是无助地四处乱窜,直到某件事奏效,然后尽可能多地写下他们能记住的东西。根本不需要使用 OpenSSL 工具。您只需要:

  1. 生成密钥对:keytool -genkey
  2. 生成 CSR:keytool -certreq
  3. 签署 CSR。
  4. 连接证书,首先是您新签署的证书,然后是捆绑包。
  5. 使用与 (1) 和 (2) 相同的别名将串联文件导入相同的密钥库。