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();
相关推荐
虚拟世界AI6 分钟前
网络数据架构:构建高效安全的数据基石
网络协议·tcp/ip·5g·https·信息与通信
荔枝吻13 小时前
【系列合集目录】.net开发选型记录
.net
F1FJJ13 小时前
只是想查个数据,不想装 phpMyAdmin
数据库·网络协议·容器·开源软件
我是唐青枫13 小时前
C#.NET ConcurrentStack<T> 深入解析:无锁栈原理、LIFO 语义与使用边界
网络·c#·.net
F1FJJ14 小时前
Shield CLI:MySQL 插件 vs phpMyAdmin:轻量 Web 数据库管理工具对比
前端·网络·数据库·网络协议·mysql·容器
bu_shuo17 小时前
IP相关知识
网络·网络协议·tcp/ip
黄昏回响19 小时前
计算机系统基础知识(九):软件篇之网络协议详解
网络·网络协议·面试·改行学it
serve the people20 小时前
ACME 协议流程与AllinSSL 的关系(二)
网络协议·https·ssl
摆烂z21 小时前
Certbot自动续费Let‘s Encrypt证书
ssl
honor_zhang21 小时前
Vue3使用@vueuse/core集成Websocket实战及携带身份信息的3种方式
websocket·网络协议·身份验证