You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin&Android Studio:允许应用信任所有SSL证书的方法

Android 信任所有SSL证书解决方案

问题原因

你遇到的javax.net.ssl.SSLHandshakeException错误,本质是Android系统默认仅信任由权威CA颁发的SSL证书,而目标私有HTTPS地址使用的是未被系统认可的自签名/私有证书,导致证书验证失败。

实现步骤

通过自定义X509TrustManager和SSLSocketFactory,跳过证书验证逻辑,让应用信任所有SSL证书。以下是具体代码实现:

  1. 创建信任所有证书的TrustManager
import javax.net.ssl.X509TrustManager;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

public 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];
    }
}
  1. 构建信任所有证书的SSLContext
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import java.security.SecureRandom;

public class SSLUtils {
    public static SSLSocketFactory getTrustAllSSLSocketFactory() {
        try {
            SSLContext sslContext = SSLContext.getInstance("TLS");
            sslContext.init(null, new TrustManager[]{new TrustAllCerts()}, new SecureRandom());
            return sslContext.getSocketFactory();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}
  1. 在网络请求库中配置使用该SSLSocketFactory
    以OkHttp为例:
import okhttp3.OkHttpClient;

OkHttpClient client = new OkHttpClient.Builder()
        .sslSocketFactory(SSLUtils.getTrustAllSSLSocketFactory(), new TrustAllCerts())
        .hostnameVerifier((hostname, session) -> true) // 同时跳过主机名验证
        .build();

重要提醒

  • 该方法仅适用于测试环境或内部私有部署场景,生产环境绝对不能使用,会完全暴露应用的网络请求到中间人攻击风险,严重威胁数据安全。
  • 若条件允许,建议获取目标服务器的私有证书,将其放入应用的res/raw目录,通过自定义信任管理器仅信任该证书,而非全部证书,这样能兼顾功能和安全性。

内容的提问来源于stack exchange,提问作者felixschoene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 15:52:32