起因

手上有个 Android 6.0 的垃圾联想平板,虽然用起来卡的怀疑人生,但上面有完整的谷歌服务,挂个梯子就能直接使用,就想着拿来装个 YouTube 看看视频啥的。

但是安装完 Clash 后,尝试导入订阅时 Clash 报错:x509: certificate has expired or is not yet valid ,检查了一下系统时间没问题就怀疑是证书存在问题,一番搜索后确定了是系统内置的 DST Root CA X3 证书在2021年9月30日过期导致的问题,那么接下来就是找方法更新证书了。

前置准备

  • 一台 已Root 的安卓设备,因为解决此问题需要向 /system/etc/security/cacerts/ 手动导入证书,Root权限是必须的
  • 支持读写根目录的文件管理器
  • ISRG Root X1ISRG Root X2 证书,下载后保存到本地备用

证书导入

将 X1 证书重命名为 6187b673.0 ,将 X2 证书 重命名为 8794b4e3.0,使用文件管理器将其移动到 /system/etc/security/cacerts/ 即可,并将两个文件的权限设置为 644

至此证书就安装完成了,我这边没有重启设备 Clash 就已经能正常导入订阅了,Chrome浏览器等依赖系统证书的应用也可以正常工作了。

参考

如何给Let's Encrypt证书过期的移动设备安装证书 - 哔哩哔哩 (bilibili.com)

DST Root CA X3 Expiration (September 2021) - Let's Encrypt (letsencrypt.org)