我有一个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
的证书,并表示它是由同一实体发布的。
证书路径仅显示此条目。
我做错了什么?
答案 0 :(得分:2)
导入SSL证书时出现了一个小错误。您必须使用与生成密钥相同的别名。
现在,Comodo发布的密钥和证书分为两个单独的条目,而PrivateKeyEntry仍然包含使用密钥创建的自签名证书:
tomcatserver, 22-Mar-2016, PrivateKeyEntry,
...
adminhq.neo-image.com, 22-Mar-2016, trustedCertEntry,
通过使用密钥别名导入CA回复,您可以将自签名证书替换为CA颁发的证书。