使用wget下载时出现证书验证错误,不想用--no-check-certificate如何解决
wget证书过期报错修复方案
该报错的核心原因是本地根证书库未更新,无法正确识别Let's Encrypt目前使用的有效ISRG Root X1根证书,误将交叉签名的旧过期根证书作为信任锚判定证书失效,以下是不使用--no-check-certificate的合规解决方案:
- 更新系统全局根证书库(最推荐)
该方案修复后所有依赖系统根证书的工具都会生效,不同操作系统执行对应命令即可:- Debian/Ubuntu 类发行版:
sudo apt update && sudo apt install --reinstall ca-certificates - RHEL/CentOS/Fedora 类发行版:
sudo dnf update ca-certificates(旧版本使用sudo yum update ca-certificates) - macOS:通过Homebrew安装的wget可执行
brew upgrade ca-certificates,系统级根证书可以通过升级系统小版本更新,或手动将ISRG Root X1证书导入系统钥匙串并设置为始终信任。
- Debian/Ubuntu 类发行版:
- 手动指定可信根证书运行wget
适合无系统管理员权限的场景,提前获取ISRG Root X1根证书保存为本地isrgrootx1.pem文件后,在wget命令后追加参数--ca-certificate=/path/to/isrgrootx1.pem即可完成正常校验。 - 升级wget版本
部分1.21以下版本的wget存在证书链校验逻辑缺陷,会错误优先使用过期的DST Root CA X3根证书校验,升级wget到1.21及以上版本即可自动适配最新的证书链校验规则。
内容的提问来源于stack exchange,提问作者benduvi20
相关产品推荐
相关产品推荐

