密钥库中的 SSL 证书不起作用

SSL certificate in keystore not working

我有一个 jks java 密钥库,我用它来保存我的 Web 服务器的 SSL 证书。

起初我使用keytool -genkey命令创建了一个私钥并给它起了别名tomcatserver

然后我使用 keytool -certreq 命令为此密钥创建了一个 CSR。

此时我获取了 CSR 并将其提交给 Comodo 以获取我将在我的 Web 服务器上使用的合适证书。我要保护的域名是 adminhq.neo-image.com

我从 Comodo 获得了一堆证书并将它们全部导入到我的密钥库中。

现在,如果我列出密钥库中的所有条目,它看起来像这样:

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 5 entries

intermediateone, 22-Mar-2016, trustedCertEntry, 
Certificate fingerprint (SHA1): 33:9C:DD:57:CF:D5:B1:41:16:9B:61:5F:F3:14:28:78:2D:1D:A6:39

root, 22-Mar-2016, trustedCertEntry, 
Certificate fingerprint (SHA1): 02:FA:F3:E2:91:43:54:68:60:78:57:69:4D:F5:E4:5B:68:85:18:68

tomcatserver, 22-Mar-2016, PrivateKeyEntry, 
Certificate fingerprint (SHA1): 49:E8:28:47:04:53:77:CC:C8:5E:21:30:0C:4C:9A:29:C9:53:24:6C

intermediatetwo, 22-Mar-2016, trustedCertEntry, 
Certificate fingerprint (SHA1): F5:AD:0B:CC:1A:D5:6C:D1:50:72:5B:1C:86:6C:30:AD:92:EF:21:B0

adminhq.neo-image.com, 22-Mar-2016, trustedCertEntry, 
Certificate fingerprint (SHA1): AF:FA:22:7F:AE:3E:6B:8C:67:DC:98:02:1F:03:D6:E5:3A:5B:82:4E

但不知何故这不适用于我的网络服务器。如果我尝试使用浏览器 (Chrome) 访问我的 Web 应用程序,它会针对错误的 SSL 证书发出警告。当我询问更多信息时,它只显示 adminhq.neo-image.com 的证书,并说它是由同一实体颁发的。

证书路径只显示这一项。

我做错了什么?

您在导入 SSL 证书时犯了一个小错误。您必须使用与生成密钥相同的别名。

现在 Comodo 颁发的密钥和证书在两个单独的条目中,PrivateKeyEntry 仍然包含使用密钥创建的自签名证书:

tomcatserver, 22-Mar-2016, PrivateKeyEntry, 
...
adminhq.neo-image.com, 22-Mar-2016, trustedCertEntry, 

通过使用密钥别名导入 CA 答复,您可以将自签名证书替换为 CA 颁发的证书。