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

Android应用配置自签名证书后仍无法访问HTTPS链接问题求助

排查步骤

1. 核验网络安全配置文件正确性

  • 确认networking_security_config.xml内容符合规范,可参考以下模板修改:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config>
        <!-- 替换为实际服务端域名/IP,不要携带端口、路径后缀 -->
        <domain includeSubdomains="true">your.domain.com</domain>
        <trust-anchors>
            <!-- raw目录下的证书文件名不要带后缀,比如存放sslcert.pem,此处填@raw/sslcert -->
            <certificates src="@raw/sslcert" />
        </trust-anchors>
    </domain-config>
</network-security-config>
  • 确认raw目录下的证书文件名仅包含小写字母、数字、下划线,Android资源文件不支持大写字母、特殊字符,比如SslCert.pem会识别失败,必须改为全小写格式。
  • 确认PEM格式证书有效,可执行OpenSSL命令校验:openssl x509 -in sslcert.pem -text -noout,能正常输出证书信息才是合法文件。正确的CER转PEM指令为:
    openssl x509 -inform DER -in sslcert.cer -out sslcert.pem
    如果原CER文件本身就是PEM编码,无需转换直接改后缀放入raw目录即可,转换格式错误会导致证书无效。

2. 核验清单文件配置

  • 确认AndroidManifest.xml的application节点下配置为android:networkSecurityConfig="@xml/networking_security_config",文件名需和实际xml目录下的配置文件名完全一致,不要出现拼写错误。
  • 确认App的targetSdkVersion≥24,网络安全配置仅对Android 7.0(API 24)及以上系统生效,更低版本系统需要单独给HTTP客户端配置自定义SSLSocketFactory。

3. 核验业务代码配置

  • 如果你使用OkHttp、Retrofit等第三方网络框架,不要自行配置自定义SSLSocketFactory、X509TrustManager,框架默认会调用系统信任管理器,自行添加的证书校验逻辑会覆盖系统网络安全配置导致失效。
  • 确认服务端TLS版本≥1.2,Android 10及以上系统默认禁用TLS 1.0/1.1,低版本TLS协议会直接被拦截。
  • 确认服务端证书的SAN(主题备用名称)包含你访问的域名/IP,如果证书仅绑定了域名,使用IP访问会触发主机名不匹配错误,需要将IP添加到证书的SAN字段,或者自定义主机名校验器。

4. 临时调试方案

如果仍无法定位问题,可以在network-security-config中添加debug覆写配置,测试debug包时临时信任用户证书,若能正常访问则说明之前的证书路径、内容存在配置错误:

<debug-overrides>
    <trust-anchors>
        <certificates src="user" />
    </trust-anchors>
</debug-overrides>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:36:03