使用相同的 URL,最终给出验证返回代码 20(无法获取本地证书颁发者):
openssl s_client -connect $URL:443 -showcerts -CAfile /etc/ssl/certs/java/cacerts
这将给出验证返回代码 0:
openssl s_client -connect $URL:443 -showcerts -CApath /etc/ssl/certs
就像 一样... -CAfile /etc/ssl/certs/Thawte_Premium_Server_CA.pem
。
但那张证书已在Java 密钥库。我需要能够从 Java 领域访问 URL,但我不知道发生了什么。我完全是新手,所以任何帮助我都会很感激。
答案1
cacerts 文件是 JKS 格式的密钥库,OpenSSL 不支持该格式(它是 Java 的标准密钥库格式,但非 Java 实用程序通常不支持该格式)
如果您想要使用openssl s_client
该密钥库中的证书,可以使用以下命令将它们提取为可用格式:
keytool -list -rfc -keystore /etc/ssl/certs/java/cacerts > cacerts.pem
(cacerts 文件的默认密码是“changeit”,但如果您只想查看公共证书,您只需输入一个空白密码就可以了)