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

Android 12及以下版本Glide加载图片因SSLHandshakeException失败的解决方案咨询

Android 12及以下版本Glide加载图片因SSLHandshakeException失败的解决方案咨询

嗨,我来帮你理清楚这个问题的解决思路,你遇到的情况其实挺典型的——Glide自带的网络客户端没继承你项目里的SSL配置,再加上旧安卓系统对新根证书的信任限制,才导致了这个SSLHandshakeException报错。下面给你两种可行的解决方向,优先推荐第一种,因为更可控也不用折腾证书:

方案一:让Glide复用你项目的自定义OkHttpClient(优先选这个)

你已经把API请求的SSL pinning配置得好好的了,只需要让Glide也用这个配置就行,这样既不用换证书,也能保持图片加载的安全性。具体步骤如下:

  • 首先,确保你引入了Glide和OkHttp的集成库,在你的build.gradle(Module级)里添加对应依赖(版本要和你当前用的Glide主版本匹配,比如Glide 4.16.0对应的集成库版本也是4.16.0):
    implementation 'com.github.bumptech.glide:glide:4.16.0'
    implementation 'com.github.bumptech.glide:okhttp3-integration:4.16.0'
    
  • 然后创建一个Glide的自定义Module,替换它默认的OkHttpClient。这里用Kotlin举例子,Java写法逻辑完全一致:
    @GlideModule
    class CustomGlideModule : AppGlideModule() {
        override fun registerComponents(context: Context, glide: Glide, registry: Registry) {
            // 这里传入你项目中已经配置好SSL pinning的OkHttpClient实例
            val customOkHttpClient = getYourProjectOkHttpClient()
            // 替换Glide默认的网络加载器为自定义的OkHttp实现
            registry.replace(
                GlideUrl::class.java,
                InputStream::class.java,
                OkHttpUrlLoader.Factory(customOkHttpClient)
            )
        }
    }
    
    这里的getYourProjectOkHttpClient()就是你用来做API请求的那个客户端,它已经包含了正确的SSL pinning配置,Glide用它加载图片后,自然就能通过证书验证了。
  • 如果你不想复用现有客户端,也可以在这个Module里单独给Glide配置SSL pinning,逻辑和你API请求的配置一样——动态获取SHA-256公钥,然后设置到OkHttpClient的sslSocketFactory和hostnameVerifier中就行。

方案二:更换兼容旧安卓的SSL证书(备选)

如果觉得配置Glide太麻烦,也可以考虑换一个旧安卓系统默认信任的根证书。你现在用的Sectigo DV R36根证书,在Android 12及以下的系统信任存储里可能没有(安卓系统的信任证书列表是随系统更新的,新证书不会被旧系统默认认可)。你可以换成比如Sectigo的旧版兼容根证书(比如Sectigo RSA Domain Validation Secure Server CA),或者Let's Encrypt的R3证书,这些证书在Android 7.0及以上都是默认信任的,能覆盖你遇到的版本问题。不过这个方案需要你重新申请证书,而且以后如果再换证书还要重复操作,灵活性不如方案一。

额外说两句

你提到API请求没问题但Glide失败,核心原因就是:API用的是你自定义的OkHttpClient,通过SSL pinning跳过了系统默认的信任链验证,直接信任你指定的公钥;而Glide默认用自己的客户端,走系统信任链,旧系统不认新根证书就报错了。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 13:18:01