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

OpenSSL 1.0.2u环境下curl与TLSv1.2 DHE-RSA服务器握手失败排查

问题描述

在Linux主机上使用基于OpenSSL 1.0.2u的curl访问某站点,通过nmap探测该站点443端口(Apache服务),发现仅支持以下TLSv1.2密码套件:

PORT    STATE SERVICE  VERSION
443/tcp open  ssl/http Apache httpd
| ssl-enum-ciphers:
|   TLSv1.2
|     Ciphers (4)
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
|       TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
|       TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
|     Compressors (1)
|_      uncompressed

我认为本地OpenSSL 1.0.2u对应的兼容密码套件为:

DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(256) Mac=AEAD
DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(128) Mac=AEAD

但curl连接时出现握手错误,日志如下:

* TLSv1.2 (IN), TLS handshake, Hello request (0):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Request CERT (13):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS alert, handshake failure (552):
* OpenSSL SSL_read: error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure, errno 0
* Closing connection 0
curl: (56) OpenSSL SSL_read: error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure, errno 0

请问我遗漏了什么?

问题分析与解决

从握手日志里能看到关键细节:服务器发送了Request CERT(请求客户端证书)的消息,说明这台Apache服务器配置了双向TLS认证,要求客户端必须提供合法证书才能完成握手,但你的curl请求没有携带客户端证书,这才是握手失败的核心原因。

你之前关注的密码套件其实没有问题——OpenSSL 1.0.2u确实支持那两个GCM套件,而且服务器也兼容,所以密码套件不是问题所在。

解决思路:

  • 如果你有该站点要求的客户端证书(一般是.pem或.p12格式),用curl的--cert参数指定证书路径;若证书有密码保护,再加--pass参数;如果证书和私钥是分离的,还要用--key参数指定私钥文件。
  • 可以先尝试执行curl --insecure https://目标站点域名测试,但如果服务器强制要求客户端证书,这个方法无效,还是得提供对应证书。
  • 若服务器本不该要求客户端证书,联系管理员调整Apache的SSL配置,关闭双向认证要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:03:24