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

Wget提示域名证书使用不安全算法报错,但Curl可正常访问的问题求助

Wget提示域名证书使用不安全算法报错,但Curl可正常访问的问题求助

您好,针对您在RHEL 9.3系统上遇到的Wget证书报错、但Curl能正常访问的问题,我整理了几个实用的排查和解决思路,您可以一步步尝试:

1. 临时宽松测试定位问题

先通过Wget的参数临时调整SSL验证规则,确认是不是算法兼容性导致的问题:

  • 指定TLS版本尝试:wget --secure-protocol=TLSv1_2 https://abc.com
  • 临时跳过证书检查(仅用于测试,不建议长期使用):wget --no-check-certificate https://abc.com
    如果这样能正常下载,说明确实是Wget的SSL配置或算法支持和Curl存在差异。

2. 检查系统加密策略

RHEL 9系列有系统级的加密策略配置,Wget会严格遵循系统设定,而Curl可能有独立的兼容逻辑。您可以先查看当前系统的加密策略:

update-crypto-policies --show

如果当前策略是FUTURE或STRICT,理论上Let's Encrypt的SHA-256 RSA签名算法是符合要求的,但可以临时切换到DEFAULT策略测试:

sudo update-crypto-policies --set DEFAULT

测试后如果问题解决,再考虑是否长期调整策略或针对性配置Wget。

3. 更新Wget及相关SSL库

RHEL 9.3自带的Wget或其依赖的GnuTLS库可能存在版本兼容性bug,导致误判证书算法。尝试更新相关包:

sudo dnf update wget gnutls

更新完成后重新测试Wget访问。

4. 让Wget使用OpenSSL替代GnuTLS

Curl默认使用OpenSSL,而Wget在RHEL上通常依赖GnuTLS,两者对算法的识别逻辑不同。如果您的系统中有支持OpenSSL的Wget版本,可以尝试指定SSL库:

wget --ssl-library=openssl https://abc.com

如果这个参数可用且能解决问题,您可以把--ssl-library=openssl加到Wget的配置文件~/.wgetrc或/etc/wgetrc中,让默认请求使用OpenSSL。

5. 手动指定完整证书链

有时候Wget无法自动加载完整的证书链,而Curl能自动处理。您可以下载Let's Encrypt的完整证书链(包含根证书和中间证书),然后让Wget指定使用:

wget --ca-certificate=/path/to/your/fullchain.pem https://abc.com

补充说明

Curl和Wget依赖的SSL实现不同(Curl用OpenSSL,Wget默认GnuTLS),两者对证书算法的校验逻辑、兼容范围有细微差异,这就是为什么会出现一个正常、一个报错的情况。

备注:内容来源于stack exchange,提问作者Neeraj Punmiya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 12:59:39