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

如何在Ubuntu上编译支持旧版SSL的Curl?连接旧站点遇SSL错误

解决curl连接旧HTTPS网站的SSL协议不支持问题

你遇到的curl: (4) OpenSSL was built without SSLv2 support和ssl_choose_client_version:unsupported protocol错误,本质是现代Linux发行版(比如Kali)默认的OpenSSL已经移除了SSLv2/3的支持——这些协议早就被认定为不安全,所以官方默认禁用了。但要访问只能用这些旧协议的网站,就得自己编译一套带SSLv2/3支持的OpenSSL和curl,具体步骤如下:

1. 安装编译所需依赖

首先确保你的系统有编译源码的基础工具:

sudo apt update && sudo apt install build-essential wget

2. 编译支持SSLv2/3的OpenSSL

新版OpenSSL(1.1.0及以上)已经彻底移除了SSLv2/3,所以我们需要用最后支持这些协议的稳定版——OpenSSL 1.0.2u:

# 下载源码包
wget https://www.openssl.org/source/old/1.0.2/openssl-1.0.2u.tar.gz
tar xzf openssl-1.0.2u.tar.gz
cd openssl-1.0.2u

# 配置编译选项,启用SSLv2/3,指定安装到自定义目录避免覆盖系统默认OpenSSL
./config enable-ssl2 enable-ssl3 --prefix=/usr/local/openssl-legacy shared zlib

# 编译并安装(-j$(nproc)是利用多CPU加速编译)
make -j$(nproc)
sudo make install

3. 编译curl并链接自定义OpenSSL

接下来编译curl,让它使用我们刚编译的旧版OpenSSL,而不是系统默认的:

# 回到上级目录,下载兼容OpenSSL 1.0.2的curl版本(比如7.71.1)
cd ..
wget https://curl.se/download/curl-7.71.1.tar.gz
tar xzf curl-7.71.1.tar.gz
cd curl-7.71.1

# 配置curl,指定使用自定义OpenSSL路径
./configure --with-openssl=/usr/local/openssl-legacy --prefix=/usr/local/curl-legacy

# 编译安装
make -j$(nproc)
sudo make install

4. 测试使用自定义curl

现在你可以用这个编译好的curl来访问旧网站了:

# 尝试SSLv2协议
/usr/local/curl-legacy/bin/curl https://10.11.1.44 --sslv2

# 尝试SSLv3协议
/usr/local/curl-legacy/bin/curl https://10.11.1.44 --sslv3

⚠️ 重要提醒:SSLv2和SSLv3存在严重的安全漏洞(比如POODLE),这个自定义的curl只能用于访问必须使用这些协议的旧网站,平时不要用它处理其他安全的HTTPS请求,避免暴露风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:55:02