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

Android network security configuration不生效,自定义SSLSocketFactory未校验证书排查

问题原因分析

1. 自定义SSLSocketFactory会绕过系统网络安全配置

Android系统的networkSecurityConfig配置仅对使用系统默认SSLSocketFactory的网络请求生效(包括原生HttpsURLConnection、未自定义SSL配置的OkHttp等场景)。你自行实现了SSLSocketFactory并自定义初始化SSLContext,相当于完全接管了SSL证书校验逻辑,系统层面的证书钉扎、域名限制配置自然不会生效。

2. 代码存在明确逻辑缺陷

你代码中定义的TrustManager变量名为trustManager,但在sslContext.init方法中传入的是未定义的tm变量,若实际运行时代码未修正该问题,要么会触发编译错误,要么是你实际传入了不做任何校验的空信任管理器:

  • 常见的NaiveTrustManager实现通常会空置所有证书校验方法,不会对非法证书、域名抛出异常
  • 若你使用的EasyX509TrustManager实现不完善,也可能存在未校验证书链、未校验域名的问题

3. 未自行实现证书钉扎逻辑

networkSecurityConfig中的pin-set证书钉扎规则,是系统默认SSLSocketFactory内部实现的校验逻辑。你自定义SSL链路时没有额外实现公钥哈希比对逻辑,哪怕配置的pin值错误,也不会触发校验失败。

4. 缺少域名校验步骤

你仅重写了createSocket方法,没有在Socket握手完成后执行域名合法性校验,也没有关联系统默认的HostnameVerifier逻辑,因此访问错误域名时不会触发校验异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 16:18:03