扫码关注官方订阅号
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
private static void setSSL() throws Exception{ SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, new TrustManager[]{new X509TrustManager() { @Override public X509Certificate[] getAcceptedIssuers() { return null; } @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } }}, new SecureRandom()); client.setSslSocketFactory(sc.getSocketFactory()); client.setHostnameVerifier(new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession session) { return true; } }); }
这是我忽略证书的代码,感觉和提主的差不多,是不是不用client.newBuilder() 直接使用client会生效。可以尝试下,不过我这边不是3.0的版本是2.5
看着像是你们协议使用了自签名证书,让你们服务器端给客户端签一张证书嵌在客户端中,采取证书校验方式,不要忽略。
下面这两句有问题:
client.newBuilder().sslSocketFactory(sslSocketFactory); client.newBuilder().hostnameVerifier(new HostnameVerifier()...
改成
client = client.newBuilder().sslSocketFactory(sslSocketFactory) .hostnameVerifier(new HostnameVerifier()...).build();
这样才是使用了新的 client
final TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() { @Override public void checkClientTrusted( java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { } @Override public void checkServerTrusted( java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { } @Override public java.security.cert.X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } }}; // Install the all-trusting trust manager final SSLContext sslContext = SSLContext.getInstance("SSL"); sslContext.init(null, trustAllCerts, new java.security.SecureRandom()); OkHttpClient client = new OkHttpClient().newBuilder().sslSocketFactory(sslContext.getSocketFactory()) .hostnameVerifier((hostname, session) ->ture).build();
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
这是我忽略证书的代码,感觉和提主的差不多,是不是不用client.newBuilder() 直接使用client会生效。
可以尝试下,不过我这边不是3.0的版本是2.5
看着像是你们协议使用了自签名证书,让你们服务器端给客户端签一张证书嵌在客户端中,采取证书校验方式,不要忽略。
下面这两句有问题:
改成
这样才是使用了新的 client