Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从TLS获取证书链以使用OCSP_Java_Ssl_Ssl Certificate_X509certificate_Ocsp - Fatal编程技术网

Java 从TLS获取证书链以使用OCSP

Java 从TLS获取证书链以使用OCSP,java,ssl,ssl-certificate,x509certificate,ocsp,Java,Ssl,Ssl Certificate,X509certificate,Ocsp,我想使用OCSP检查TLS握手期间来自服务器的证书 我使用Bouncy Castle作为OCSP实现的提供者,BC验证方法通常希望X509Certificate作为参数 所以,;如何在Java端跟踪并获取传入的证书链并获取它 感谢您的帮助。您可以使用并将结果强制转换为X509Certificate HttpsURLConnection connection = ... Certificate chain[] = connection.getServerCertificates(); X509Ce

我想使用OCSP检查TLS握手期间来自服务器的证书

我使用Bouncy Castle作为OCSP实现的提供者,BC验证方法通常希望X509Certificate作为参数

所以,;如何在Java端跟踪并获取传入的证书链并获取它

感谢您的帮助。

您可以使用并将结果强制转换为X509Certificate

HttpsURLConnection connection = ...
Certificate chain[] = connection.getServerCertificates();
X509Certificate cert = (X509Certificate)chain[0];

谢谢你的回答。但是这个类需要主机名才能通过url打开连接。但是我试图用IP地址创建TLS,我得到一个错误,如;“javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateException:找不到与IP地址47.168.116.8匹配的主题替代名称”是否可以使用IP地址打开连接?HTTPSUrlConnection可以使用IP或主机名。在您的情况下,错误是因为要打开到主机的SSL连接,证书必须在SubjectAlternativesNames中显式包含服务器的IP。如果未包含IP或主机名与证书中包含的主机名不匹配,Java客户端将拒绝连接。此错误与原始问题无关