密钥库中的SSL证书无法正常工作

时间:2016-03-23 15:01:44

标签: java ssl ssl-certificate keystore keytool

我有一个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的证书,并表示它是由同一实体发布的。

证书路径仅显示此条目。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

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

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

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

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