java密钥库不能validationURL

如果使用相同的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一个空密码就可以了)