密钥库中的 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 颁发的证书。
我有一个 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 颁发的证书。