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

Ubuntu 22.04下curl指定TLSv1.2仍遇SSLv3握手失败求助

Ubuntu 22.04下curl强制TLSv1.2仍报SSLv3握手失败,需禁用SSLv3

我们在Ubuntu 22.04机器上使用curl连接已禁用SSLv3的服务器时,即使强制curl仅使用TLSv1.2,仍出现SSLv3握手失败错误。当前curl版本为7.81.0,OpenSSL版本为3.0.2,Windows上的curl 8.5.0可正常连接该服务器。服务器团队建议在本机禁用SSLv3,以下是操作方法:

问题复现的curl命令及输出

root@xxxxxxxx:~# curl -v --tlsv1.2 --tls-max 1.2 https://xxxxxxxxxx:xxxx
Trying xxx.xxx.xxx.xxx:xxxx...
Connected to xxxxxxxxxx (xxx.xxx.xxx.xxx) port xxxx (#0)
ALPN, offering h2
ALPN, offering http/1.1
CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
TLSv1.0 (OUT), TLS header, Certificate Status (22):
TLSv1.2 (OUT), TLS handshake, Client hello (1):
TLSv1.2 (IN), TLS header, Unknown (21):
TLSv1.2 (IN), TLS alert, handshake failure (552):
error:0A000410:SSL routines::sslv3 alert handshake failure
Closing connection 0
curl: (35) error:0A000410:SSL routines::sslv3 alert handshake failure

禁用SSLv3的操作方法

方法一:全局修改OpenSSL配置(推荐)

  1. 打开OpenSSL全局配置文件:
    sudo nano /etc/ssl/openssl.cnf
    
  2. 找到或添加[system_default_sect]段落,添加以下配置:
    [system_default_sect]
    MinProtocol = TLSv1.2
    CipherString = DEFAULT:@SECLEVEL=2
    
    该配置会强制OpenSSL最低使用TLSv1.2,直接排除SSLv3及更低版本的协议支持。
  3. 保存文件并退出(按Ctrl+O回车确认,再按Ctrl+X),修改立即生效,无需重启系统。

方法二:单独给curl命令添加参数(临时方案)

如果不想全局修改,可在curl命令中额外指定禁用SSLv3的加密套件:

curl -v --tlsv1.2 --tls-max 1.2 --ciphers 'DEFAULT:!SSLv3' https://xxxxxxxxxx:xxxx

验证修改

重新运行之前的curl命令,若握手成功则说明修改生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 18:22:33