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

WSL2 Ubuntu下curl/wget报SSL不安全旧版协商禁用错误求助

解决WSL2 Ubuntu下VPN/企业防火墙环境的SSL不安全旧版重协商错误

这个错误的核心原因是:新版OpenSSL(3.x及以上)默认禁用了不安全的旧版SSL重协商机制,而你的企业VPN或防火墙恰好依赖这种过时的协商逻辑——这和你导入根CA证书无关,属于握手层面的兼容问题。

下面是两种可行的解决办法:

临时生效(单命令/会话内有效)

在执行curl/wget前,通过环境变量临时让OpenSSL允许旧版重协商:

# 直接给目标命令套上环境变量
OPENSSL_CONF=<(printf "[openssl_init]\nssl_conf = ssl_sect\n[ssl_sect]\nsystem_default = system_default_sect\n[system_default_sect]\nOptions = UnsafeLegacyRenegotiation") curl -fsSL http://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null

或者先设置环境变量,之后会话内的所有命令都生效:

export OPENSSL_CONF=<(printf "[openssl_init]\nssl_conf = ssl_sect\n[ssl_sect]\nsystem_default = system_default_sect\n[system_default_sect]\nOptions = UnsafeLegacyRenegotiation")
# 接下来正常执行你的curl/wget命令即可
curl -fsSL http://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null

永久生效(全局所有工具适用)

修改系统级OpenSSL配置,让所有依赖OpenSSL的工具默认允许旧版重协商:

  1. 打开配置文件:
sudo nano /etc/ssl/openssl.cnf
  1. 在文件最开头添加以下配置(如果已有[openssl_init]段落,直接合并对应内容即可):
[openssl_init]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
Options = UnsafeLegacyRenegotiation
  1. 保存退出后,无需重启系统,curl、wget、apt等工具都会自动应用这个配置。

注意

这个配置会降低SSL连接的安全性,仅在你完全信任当前企业VPN和防火墙环境的前提下使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 16:27:25