Java keytool从URL /端口添加服务器证书的简单方法(对于Windows)

时间:2018-11-19 14:29:39

标签: windows openssl keytool

我想将CA证书导入Java密钥库。 我发现this answer有一些Unix命令。

我知道keytool在Windows中的工作方式与在Linux中相同,不是吗?

但是openssl呢?

我在Windows中安装了openssl,然后运行它,它可以正常工作。但是如何替换下面的代码?

</dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ${HOST}.cert

或者我可以用其他东西代替openssl吗?

1 个答案:

答案 0 :(得分:1)

可能最简单的方法是使用KeyStore Explorer。只需使用“检查SSL”功能,然后单击“导入”即可:

enter image description here

或者,您可以将</dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ${HOST}.cert替换为手动步骤。如果执行

openssl s_client -connect -connect www.google.com:443

它将输出如下内容:

depth=2 OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
verify return:1
depth=1 C = US, O = Google Trust Services, CN = Google Internet Authority G3
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google LLC, CN = www.google.com
verify return:1
---
Certificate chain
 0 s:/C=US/ST=California/L=Mountain View/O=Google LLC/CN=www.google.com
   i:/C=US/O=Google Trust Services/CN=Google Internet Authority G3
 1 s:/C=US/O=Google Trust Services/CN=Google Internet Authority G3
   i:/OU=GlobalSign Root CA - R2/O=GlobalSign/CN=GlobalSign
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIEgjCCA2qgAwIBAgIIZ20sUt50wGgwDQYJKoZIhvcNAQELBQAwVDELMAkGA1UE
BhMCVVMxHjAcBgNVBAoTFUdvb2dsZSBUcnVzdCBTZXJ2aWNlczElMCMGA1UEAxMc
...
htkxJVFaLUXScpkNQagWzehkj9BGdV4oztKMgTU8hcZEsiDKF0aZmaMfAXAF6u0r
0n9sKu3Ap0uSR0+G4PVDcJkJzw2UiUsu8IkkHy3HjKt4zCCrATjZ4FPgtFHSWv8d
ZmUdWJhgJ30s/EvOKn1uQ6QlPWaCJKc9W6JaJQTX6PjPDMs0sK90ss9vCIJ0dDw5
ud+EC4cT
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=Mountain View/O=Google LLC/CN=www.google.com
issuer=/C=US/O=Google Trust Services/CN=Google Internet Authority G3
---
No client certificate CA names sent

标记从-----BEGIN CERTIFICATE----------END CERTIFICATE-----的行,并将其复制到文本编辑器中。将其另存为[host] .crt。然后执行keytool命令。

如果要在脚本中自动执行这些步骤,则必须安装Cygwinthis answer here中的建议之一。