javax.net.ssl.SSLHandshakeException: Chain validation failed

异常描述:

shell 复制代码
D/OkHttp: <-- HTTP FAILED: javax.net.ssl.SSLHandshakeException: Chain validation failed
com.bfmd.okhttpsample I/Main: error: Chain validation failed

异常解决:

解决方法一:

解决方法很简单,检查一下设备系统时间是否在证书有效期内,若没有就改到有效期即可(一般系统时间调整为跟网络一致)。

解决方法二:跳过https验证机制

缺点是信任任何网址,无论是否有证书或者在证书有效期内,可以按需修改为信任指定网址

java 复制代码
	//自定义SS验证相关类
	private static class TrustAllCerts implements X509TrustManager {
        @Override
        public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
        }

        @Override
        public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
        }

        @Override
        public X509Certificate[] getAcceptedIssuers() {
            return new X509Certificate[0];
        }
    }

    private static class TrustAllHostnameVerifier implements HostnameVerifier {
        @Override
        public boolean verify(String hostname, SSLSession session) {
            return true;
        }
    }

    private static SSLSocketFactory createSSLSocketFactory() {
        SSLSocketFactory ssfFactory = null;
        try {
            SSLContext sc = SSLContext.getInstance("TLS");
            sc.init(null, new TrustManager[]{new TrustAllCerts()}, new SecureRandom());
            ssfFactory = sc.getSocketFactory();
        } catch (Exception e) {
        }
        return ssfFactory;
    }

设置属性

java 复制代码
    okBuilder.sslSocketFactory(createSSLSocketFactory());
    okBuilder.hostnameVerifier(new TrustAllHostnameVerifier());
    return okBuilder.build();
相关推荐
追逐时光者11 小时前
2025 年全面的 C#/.NET/.NET Core 学习路线集合,学习不迷路!
后端·.net
SchuylerEX11 小时前
第六章 JavaScript 互操(2).NET调用JS
前端·c#·.net·blazor·ui框架
百锦再13 小时前
一文精通 Swagger 在 .NET 中的全方位配置与应用
后端·ui·.net·接口·配置·swagger·访问
.Shu.14 小时前
计算机网络 HTTPS 全流程
网络协议·计算机网络·https
还听珊瑚海吗17 小时前
基于WebSocket和SpringBoot聊天项目ChatterBox测试报告
spring boot·websocket·网络协议
猿究院--冯磊21 小时前
计算机网络--HTTP协议
网络协议·计算机网络·http
Nita.21 小时前
.NET 中的延迟初始化:Lazy<T> 与LazyInitializer
c#·.net
元清加油1 天前
【Goland】:协程和通道
服务器·开发语言·后端·网络协议·golang
iナナ2 天前
传输层协议——UDP和TCP
网络·网络协议·tcp/ip·udp
舒一笑2 天前
Mac 上安装并使用 frpc(FRP 内网穿透客户端)指南
后端·网络协议·程序员