9月30日LetsEncrypt证书过期是否导致Ubuntu 20.04上git功能异常?
问题根因
该问题确实与2021年9月30日LetsEncrypt旧根证书DST Root CA X3过期相关。Ubuntu 20.04默认已包含可正常校验LetsEncrypt证书的有效ISRG Root X1根证书,但旧版本的ca-certificates包会同时保留已过期的DST Root CA X3根证书。git默认依赖的libcurl-gnutls组件进行证书链校验时会优先匹配到过期的DST根证书,最终触发校验失败。普通curl工具默认使用OpenSSL后端,证书校验逻辑不同,因此不会出现该问题。
修复方案
- 优先尝试升级系统根证书包:
apt update && apt install -y ca-certificates
执行完成后重新尝试git操作即可恢复正常。
- 若升级后问题仍存在,手动禁用过期根证书:
- 编辑证书配置文件
/etc/ca-certificates.conf,找到mozilla/DST_Root_CA_X3.crt条目,在该行开头添加!将其标记为禁用 - 执行命令刷新系统证书存储:
update-ca-certificates - 编辑证书配置文件
- 临时测试应急方案(安全性较低,禁止在生产环境使用):
执行git命令时添加参数跳过证书校验:git -c http.sslVerify=false clone https://gitlab.gnome.org/GNOME/gnome-2048.git
内容的提问来源于stack exchange,提问作者unilynx
相关产品推荐
相关产品推荐

