Android Studio, javax.net.ssl.SSLHandshakeException: 不可接受的证书
创始人
2024-08-17 00:00:26
0

解决javax.net.ssl.SSLHandshakeException异常的一种常见方法是禁用证书验证。这在开发和测试阶段非常有用,但在生产环境中不推荐使用。下面是一个示例代码,演示了如何禁用证书验证:

import javax.net.ssl.*;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

public class SSLUtils {

    public static void disableCertificateValidation() {
        try {
            // 创建一个信任所有证书的TrustManager
            TrustManager[] trustAllCerts = new TrustManager[] {
                new X509TrustManager() {
                    public X509Certificate[] getAcceptedIssuers() {
                        return new X509Certificate[0];
                    }

                    public void checkClientTrusted(X509Certificate[] certs, String authType) {
                    }

                    public void checkServerTrusted(X509Certificate[] certs, String authType) {
                    }
                }
            };

            // 获取SSLContext实例
            SSLContext sslContext = SSLContext.getInstance("TLS");

            // 初始化SSLContext
            sslContext.init(null, trustAllCerts, new java.security.SecureRandom());

            // 获取HttpsURLConnection的默认SSLSocketFactory
            SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();

            // 设置默认SSLSocketFactory
            HttpsURLConnection.setDefaultSSLSocketFactory(sslSocketFactory);

            // 忽略主机名验证
            HostnameVerifier allHostsValid = new HostnameVerifier() {
                public boolean verify(String hostname, SSLSession session) {
                    return true;
                }
            };

            // 设置默认HostnameVerifier
            HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用上述代码,您可以在应用程序的启动代码中调用SSLUtils.disableCertificateValidation()方法来禁用证书验证。但请注意,在生产环境中,强烈建议仔细验证服务器证书以确保安全性。

相关内容

热门资讯

透视黑科技!wepoker科技... 透视黑科技!wepoker科技辅助器(透视)开挂辅助神器(好像真的有挂)-哔哩哔哩亲,关键说明,we...
透视规律!德州透视竞技联盟,h... 透视规律!德州透视竞技联盟,hhpoker有辅助吗,指南教程(都是是真的挂)-哔哩哔哩1、上手简单,...
透视代码!wepoker有没有... 透视代码!wepoker有没有插件(透视)开挂辅助app(一直有挂)-哔哩哔哩1、完成wepoker...
辅助透视!cloudpoker... 辅助透视!cloudpoker辅助,pokerrrr2辅助,操作教程(竟然是有挂)-哔哩哔哩1、超多...
透视俱乐部!we-poker辅... 透视俱乐部!we-poker辅助(透视)开挂辅助神器(果然真的有挂)-哔哩哔哩1、实时we-poke...
透视辅助!wepoker辅助器... 透视辅助!wepoker辅助器,wepoker钻石怎么看底牌,积累教程(好像存在有挂)-哔哩哔哩1、...
透视肯定!wepoker有辅助... 透视肯定!wepoker有辅助插件吗,wepoker辅助器,教程书教程(切实有挂)-哔哩哔哩1、we...
透视挂!hh poker插件下... 透视挂!hh poker插件下载(透视)开挂辅助方法(切实是有挂)-哔哩哔哩1、在hh poker插...
透视规律!pokermaste... 透视规律!pokermaster修改器(透视)开挂辅助软件(本来真的有挂)-哔哩哔哩1)pokerm...
透视有挂!wepoker透视a... 透视有挂!wepoker透视app下载,wepoker私局辅助,模块教程(切实真的有挂)-哔哩哔哩1...