如果使用相同的url,则会得到一个validation返回码20(无法获得本地证书颁发者):
openssl s_client -connect $URL:443 -showcerts -CAfile /etc/ssl/certs/java/cacerts
这给出了一个validation返回码0:
openssl s_client -connect $URL:443 -showcerts -CApath /etc/ssl/certs
正如... -CAfile /etc/ssl/certs/Thawte_Premium_Server_CA.pem 。
但是,该证书已经在 Java密钥库中。 我需要能够从Java-land访问url,我无法弄清楚发生了什么。 我在这里总共n00b所以任何帮助,将不胜感激。
Tha cacerts文件是一种JKS格式的密钥库,OpenSSL不支持这种密钥库(这是Java的标准密钥库格式,但通常不由非Java实用程序支持)
如果要使用openssl s_client和来自该密钥库的证书,可以将它们提取为可用的forms
keytool -list -rfc -keystore /etc/ssl/certs/java/cacerts > cacerts.pem
(cacerts文件的默认密码是“changeit”,但是如果你只是想看到公共证书,你只需input一个空密码就可以了)