gpt4 book ai didi

java - 如何使用 Apache 客户端接受过期的 ssl 证书?

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

我正在尝试让 DefaultHttpClient() 使用过期的 SSL 证书。

Android API 2.2

由于这一行,它不会编译:

SSLSocketFactory sf = new SSLSocketFactory(sslContext);

错误:构造函数 SSLSocketFactory(SSLContext) 未定义

我做错了什么?

    import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.apache.http.conn.ssl.SSLSocketFactory;
{...}

SSLContext sslContext = SSLContext.getInstance("SSL");

// set up a TrustManager that trusts everything
sslContext.init(null, new TrustManager[] { new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
System.out.println("getAcceptedIssuers =============");
return null;
}

public void checkClientTrusted(X509Certificate[] certs,
String authType) {
System.out.println("checkClientTrusted =============");
}

public void checkServerTrusted(X509Certificate[] certs,
String authType) {
System.out.println("checkServerTrusted =============");
}
} }, new SecureRandom());

SSLSocketFactory sf = new SSLSocketFactory(sslContext);
Scheme httpsScheme = new Scheme("https", sf, 443);
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(httpsScheme);

HttpParams params = new BasicHttpParams();
ClientConnectionManager cm = new SingleClientConnManager(params, schemeRegistry);

//DefaultHttpClient httpclient = new DefaultHttpClient();
DefaultHttpClient httpclient = new DefaultHttpClient(cm, params);

最佳答案

查看 SSLSocketFactory 的文档,似乎没有构造函数:

SSLSocketFactory(javax.net.ssl.SSLContext)

可用的构造函数是:

SSLSocketFactory(String algorithm, KeyStore keystore, String keystorePassword, KeyStore truststore, SecureRandom random, HostNameResolver nameResolver)
SSLSocketFactory(KeyStore keystore, String keystorePassword, KeyStore truststore)
SSLSocketFactory(KeyStore keystore, String keystorePassword)
SSLSocketFactory(KeyStore truststore)

我是不是漏掉了什么?

另见 javax.net.ssl.SSLContext

关于java - 如何使用 Apache 客户端接受过期的 ssl 证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8694498/

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