gpt4 book ai didi

java - 无法从站点获取服务器证书

转载 作者:行者123 更新时间:2023-11-30 11:44:44 24 4
gpt4 key购买 nike

我无法从我的网站(其他网站)获取证书。我尝试了一些使用 HttpsURLConnection 和方法 getServerCertificates 的解决方案,但没有解决问题。

 URL httpsURL = new URL("https://www.google.com.br/");
HttpsURLConnection connection = (HttpsURLConnection)httpsURL.openConnection();
Certificate[] certs = connection.getServerCertificates();

我收到一个异常,提示“getServerCertificates 无法解析。”

我认为没有必要使用 keystore ,是吗??

最佳答案

I get an exception saying that getServerCertificates cannot be resolved..

这很奇怪。您确定您使用的是正确的类(class)吗?如果我运行这段代码:

import java.io.IOException;
import java.net.URL;
import java.security.cert.Certificate;

import javax.net.ssl.HttpsURLConnection;

public class Test {
public static void main(String[] args) throws IOException {
URL httpsURL = new URL("https://www.google.com.br/");
HttpsURLConnection connection = (HttpsURLConnection) httpsURL.openConnection();
connection.connect();
Certificate[] certs = connection.getServerCertificates();
for (Certificate cer : certs) {
System.out.println(cer.getPublicKey());
}
}
}

我得到的结果如下:

Sun RSA public key, 1024 bits
modulus: 13069990984429476578...
public exponent: 65537
Sun RSA public key, 1024 bits
modulus: 14179907349200548596...
public exponent: 65537

验证您使用的是什么 SSL 套接字工厂,也许那里有问题。将此添加到您的代码中并查看它的结果(例如,对我来说是 com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl):

System.out.println(connection.getSSLSocketFactory().getClass());
System.out.println(connection.getDefaultSSLSocketFactory().getClass());

关于java - 无法从站点获取服务器证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10643032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com