linux更新受信根证书库是为了修复curl、wget等工具的https验证错误;需先识别发行版(如ubuntu、centos),再执行对应命令:debian/ubuntu用sudo apt install --only-upgrade ca-certificates && sudo update-ca-certificates --fresh,rhel系用sudo update-ca-trust或sudo update-ca-trust extract,最后用openssl和curl验证生效。

Linux系统更新受信的公共根证书库,是为了让curl、wget、apt、Python requests等工具能正常验证HTTPS网站、软件源或API服务的身份。如果遇到“SSL certificate problem: unable to get local issuer certificate”或“CERTIFICATE_VERIFY_FAILED”错误,大概率是系统内置的CA证书包已过时,必须更新官方维护的根证书集合。
确认当前发行版类型并选择对应命令
不同Linux发行版使用不同的证书管理机制和更新命令,不能混用。先运行以下命令识别系统身份:
【ID=$(grep '^ID=' /etc/os-release | cut -d= -f2 | tr -d '"'); echo $ID】
常见结果:ubuntu、debian、centos、rocky、almalinux、fedora。根据输出选择后续操作路径。
Debian/Ubuntu系:用update-ca-certificates刷新信任库
该系列将证书源分散在两个目录,最终合并生成/etc/ssl/certs/ca-certificates.crt。
第一步:确保ca-certificates包为最新版本
sudo apt update && sudo apt install --only-upgrade ca-certificates
第二步:强制重建整个信任库(含哈希链接与ca-certificates.crt)
sudo update-ca-certificates --fresh
这一步会清空/etc/ssl/certs/下所有旧的符号链接,重新扫描/usr/share/ca-certificates/和/usr/local/share/ca-certificates/中所有.crt文件,并生成新证书链。不加--fresh参数可能跳过已存在的链接,导致更新不彻底。
RHEL/CentOS/Rocky/AlmaLinux系:用update-ca-trust同步并提取
方法一:仅更新系统级信任库(推荐日常使用)
sudo update-ca-trust
方法二:先同步源再强制重生成全部提取产物(适用于证书异常或怀疑缓存污染)
sudo update-ca-trust extract
【注意:不要手动修改/etc/pki/ca-trust/extracted/下的任何文件】该目录由update-ca-trust自动生成,手动改动会被下次命令覆盖,且可能导致Java、OpenSSL、curl行为不一致。
验证更新是否生效
运行以下命令检查Mozilla根证书列表是否已更新到最新批次:
openssl x509 -in /etc/ssl/certs/ca-certificates.crt -noout -text 2>/dev/null | grep "Issuer:" | head -n1
输出应包含类似“CN = ISRG Root X1”或“CN = DST Root CA X3 (expired)”的条目(后者仅作兼容保留)。若仍显示老旧CA如“Equifax Secure Certificate Authority”,说明更新未成功。
立即测试HTTPS连通性:
curl -I https://valid-isrgrootx1.letsencrypt.org 2>/dev/null | head -n1











