You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Perl至5.36.0后CPAN无法验证SSL证书问题求助

解决CPAN SSL证书验证失败(Let's Encrypt R3过期)问题

以下是针对你遇到的问题的分步解决方案:

  • 检查并更新系统根证书链
    旧系统的根证书可能未包含ISRG Root X1(Let's Encrypt的新根证书,用于替代过期的DST Root CA X3)。执行以下命令手动添加:

    # 下载ISRG Root X1证书
    wget --no-check-certificate https://letsencrypt.org/certs/isrgrootx1.pem
    # 将证书复制到系统证书目录
    cp isrgrootx1.pem /etc/ssl/certs/
    # 更新证书哈希链接
    c_rehash /etc/ssl/certs/
    

    之后重新运行update-ca-certificates确保生效。

  • 配置CPAN使用正确的证书路径
    进入CPAN交互模式,强制指定系统证书文件:

    cpan
    

    在CPAN提示符下执行:

    o conf ssl_ca_file /etc/ssl/certs/ca-certificates.crt
    o conf commit
    

    退出后再尝试安装模块,比如cpan YAML::XS。

  • 升级CPAN客户端到cpanm(更可靠的替代工具)
    旧版CPAN客户端可能存在SSL兼容性问题,安装cpanm:

    curl --insecure -L https://cpanmin.us | perl - App::cpanminus
    

    之后用cpanm安装模块,它会自动处理证书链问题:

    cpanm YAML::XS
    
  • 强制更新SSL相关Perl模块
    IO::Socket::SSL和LWP::UserAgent等模块负责CPAN的SSL连接,旧版本可能不支持新证书链。临时绕过证书安装这些模块:

    cpanm --insecure IO::Socket::SSL LWP::UserAgent
    

    更新完成后,再正常安装其他模块即可。

  • 临时绕过证书验证(仅应急使用)
    如果以上方法都无效,可临时关闭CPAN的证书验证(注意:此操作不安全,解决后务必恢复):

    cpan
    

    在CPAN提示符下执行:

    o conf verify_hostname 0
    o conf commit
    

    安装完成后,记得改回:

    o conf verify_hostname 1
    o conf commit
    

内容的提问来源于stack exchange,提问作者Kamakshi Trivedi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 04:40:19