客户端为我提供了一个HTTPS URL用于服务调用。我需要向该URL发出请求。我知道,如果该URL的证书来自公共提供程序,那么它可能已经在默认的Java信任存储cacerts上可用。但是我不确定如何检查是否需要导入证书,如何检查来自某个网站的证书是否已经存在于默认的java truststore \jre1.8\lib\security\cacerts中?
yzuktlbb1#
您可以使用java keytool在cacert击键中检查(列出)证书。
keytool -list -v -keystore /path/to/cacerts
keytool必须位于您的路径中,或者可以在Java安装的bin目录中找到(例如C:/Program Files (x86)/Java/jre1.8/bin/keytool.exe)。
C:/Program Files (x86)/Java/jre1.8/bin/keytool.exe
bkhjykvo2#
只要尝试用URL和HttpsURLConnection连接到它,至少能得到响应代码,而不需要花哨的信任管理器或任何东西,如果它是可信的,就不会有问题。您的术语有误。所有证书都是公开的。如果是 * CA签名的 * 证书,由证书在cacerts中的 CA 签名,则不需要导入。
URL
HttpsURLConnection
cacerts
hiz5n14c3#
在cacerts中列出证书的简单方法是
keytool -v -list -cacerts -storepass changeit
3条答案
按热度按时间yzuktlbb1#
您可以使用java keytool在cacert击键中检查(列出)证书。
keytool必须位于您的路径中,或者可以在Java安装的bin目录中找到(例如
C:/Program Files (x86)/Java/jre1.8/bin/keytool.exe
)。bkhjykvo2#
只要尝试用
URL
和HttpsURLConnection
连接到它,至少能得到响应代码,而不需要花哨的信任管理器或任何东西,如果它是可信的,就不会有问题。您的术语有误。所有证书都是公开的。如果是 * CA签名的 * 证书,由证书在
cacerts
中的 CA 签名,则不需要导入。hiz5n14c3#
在cacerts中列出证书的简单方法是