Perlbrew安装的Perl 5.36.0使用CPAN时出现证书错误求助
解决Perlbrew安装的Perl 5.36.0无法通过CPAN安装模块的证书验证错误
以下是针对Let's Encrypt R3证书验证失败的几种解决办法:
1. 更新系统根证书包
这是最根本的解决方式,证书验证失败通常是系统缺少或过期的根证书导致:
- Debian/Ubuntu系统:
sudo apt update && sudo apt install --reinstall ca-certificates - RHEL/CentOS/Rocky Linux系统:
sudo yum reinstall ca-certificates # 或用dnf替代yum
更新完成后重新尝试运行cpan安装模块。
2. 临时跳过证书验证(应急用,不推荐长期使用)
若需快速解决问题,可修改CPAN配置让wget跳过证书检查:
- 进入CPAN交互shell:
cpan - 设置wget参数并保存配置:
o conf wget_args "--no-check-certificate" o conf commit - 退出CPAN shell后重新尝试安装模块。
3. 指定CA证书路径给Perl的SSL模块
如果系统已有有效CA证书,但Perlbrew的Perl无法识别,可手动指定证书文件路径:
- 先找到系统的CA证书文件位置,常见路径为:
/etc/ssl/certs/ca-certificates.crt(Debian/Ubuntu)/etc/pki/tls/certs/ca-bundle.crt(RHEL/CentOS)
- 进入CPAN shell设置证书路径:
o conf ssl_ca_file /path/to/your/ca-certificate-file o conf commit
或者在运行cpan前设置环境变量:
export PERL_LWP_SSL_CA_FILE=/path/to/your/ca-certificate-file cpan
4. 使用cpanm替代默认CPAN客户端
cpanm(App::cpanminus)对SSL证书的处理更友好,可先通过perlbrew安装它:
- 手动下载cpanm脚本(用wget跳过证书):
wget --no-check-certificate https://cpanmin.us -O cpanm chmod +x cpanm - 用perlbrew的Perl安装cpanm到当前环境:
./cpanm App::cpanminus - 之后用cpanm安装模块,例如:
cpanm Module::Name
内容的提问来源于stack exchange,提问作者user2913094
相关产品推荐
相关产品推荐

