验证HTTPS站点是否在JDK信任列表

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hxg117/article/details/80163975

由于需要和第三方站点集成,对方如果修改了HTTPS证书,会导致HTTPS网络连接失败,所以需要提前验证一下对方的证书是否在我们的信任列表。

第三方站点: https://secure.touchnet.com:8700/

首先查看对方站点的证书:
openssl s_client -showcerts -connect secure.touchnet.com:8700

将对方站点的证书保存在一个文件cert.txt

-----BEGIN CERTIFICATE-----
MIIE0DCCA7igAwIBAgIQCkieiFN+iqZFTW4sSyrrIDANBgkqhkiG9w0BAQsFADCB
...... //省略
r8kbYq3fAu5dNPZBS8vDVa+xy9qcc9UCqC2nrPzh5QfQUeg1
-----END CERTIFICATE-----

上一步保存的证书是PEM格式,将证书转换成DER,方便查看。

>openssl x509 -in cert.txt -inform pem -out a.der -outform DER

双击查看a.der文件。
这里写图片描述
查看根证书:
这里写图片描述
注意这里的SHA1指纹。

接下来根据指纹作为关键字在JDK的cacerts里面查找有没有对应的信任证书。

C:\test>keytool -list -keystore cacerts -storepass changeit | grep 'F1:8B' -A1
Certificate fingerprint (SHA1): F1:8B:53:8D:1B:E9:03:B6:A6:F0:56:43:5B:17:15:89:CA:F3:6B:F2
thawteprimaryrootcag2, Dec 11, 2009, trustedCertEntry,

猜你喜欢

转载自blog.csdn.net/hxg117/article/details/80163975
今日推荐