我在使用 Tomcat8 托管时遇到了相同的异常错误(密钥库不匹配)。如果您在创建密钥库时输入了wrong domain name 或no domain name,则需要再次重新创建密钥库文件并再次将您的 CSR 提交给您的证书颁发机构 (CA) 许可/认可/批准颁发数字签名证书(在我的情况下是老爹)。
以下是创建密钥库文件的命令:
keytool -keysize 2048 -genkey -alias tomcat -keyalg RSA -keystore tomcat.keystore
keytool -importkeystore -srckeystore tomcat.keystore -destkeystore tomcat.keystore -deststoretype pkcs12
(当提示要求输入名字和姓氏时,您需要输入域名,它要求完全合格的域名(FDQN),例如@987654321 @)。来自市、州和省 - do not abbreviate
输入以下命令以创建 CSR(从与您的 tomcat.keystore 位置相同的目录):
keytool -certreq -keyalg RSA -alias tomcat -file myFQDN.csr -keystore tomcat.keystore
注意:由于之前的“密钥库不匹配”错误,我不得不从我的 Windows 控制台 (MMC) 中删除我的所有 Godaddy 证书。
在您的证书颁发机构准备好证书文件后。下载文件并双击 2 个 .crt 文件中的每一个以在 Windows 中重新安装它们(选择在本地计算机中自动安装)。确保备份您的 tomcat.keystore 文件,然后按照与以下示例相同的顺序将这些证书文件按顺序导入到您的 tomcat.keystore 文件(从头开始):
keytool -import -alias root -keystore tomcat.keystore -trustcacerts -file gdig2.crt.pem
keytool -import -alias intermed -keystore tomcat.keystore -trustcacerts -file gd_bundle-g2-g1.crt
keytool -import -alias tomcat -keystore tomcat.keystore -trustcacerts -file namewithnumbersandletters.crt
确保您已更新 server.xml,然后重新启动 Tomcat
<Connector port="80" protocol="HTTP/1.1"
relaxedQueryChars="|{}[]%-"
connectionTimeout="20000"
redirectPort="443" />
<Connector SSLEnabled="true" URIEncoding="UTF-8"
clientAuth="false"
keystoreFile="C:\Program Files\Java\jdk-11.0.9\bin\tomcat.keystore"
keystorePass="ChangeToYourPassword"
maxThreads="200"
port="443"
scheme="https"
secure="true"
sslProtocol="TLS"
sslEnabledProtocols="TLSv1.2"
ciphers="TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" />
瞧!在域上浏览时会出现锁定图标(安全连接)。