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

如何排查旧版OpenSSL客户端连接特定服务器的SSL握手失败问题

SSL握手失败排查问题

更新:PCAP文件

已提供对应抓包文件

我有一个2017年开发的应用,使用OpenSSL 1.0.1h(对应文件为ssleay32.dll);另有一个新版本应用,采用近一年发布的curl版本。旧版应用连接特定服务器hazards.fema.gov时出现SSL握手失败错误。

我了解到最常见原因是客户端与服务器无法找到通用密码套件,但通过WireShark抓包分析后,似乎并非此问题:

  • 新旧应用均使用TLSv1.2
  • 根据SSL Labs测试结果,该服务器支持两个密码套件:
    TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(首选)
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    
  • 新版应用提供16个套件(包含上述两个),服务器选择首选套件TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,握手成功;
  • 旧版应用提供18个套件(包含上述非首选套件),但握手失败。

假设问题并非密码套件不兼容,我想了解如何排查握手失败的原因(我无服务器访问权限)。

补充信息

  • 新旧应用均能成功连接另一HTTPS服务器cameo.noaa.gov。此场景下旧版应用提供78个密码套件,服务器选择TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256;新版应用提供18个套件,服务器同样选择该套件。
  • 两台服务器均仅支持TLSv1.2,新旧客户端均可正常使用TLSv1.2。

疑问

  1. 是否存在hazards.fema.gov服务器声明支持两个套件,但实际仅支持首选套件的可能?
  2. 若不存在,有什么方法可以获取握手失败的更多信息?

WireShark握手失败截图

WireShark握手失败截图

更新:握手扩展信息

旧版应用失败场景

Handshake Protocol: Client Hello
Handshake Type: Client Hello (1)
Length: 164
Version: TLS 1.2 (0x0303)
Random: 664d0a89bbdac83cd7a2f8244f6b71b6561e7b36d8b553cee79b5ae4f2916f10
Session ID Length: 0
Cipher Suites Length: 36
Cipher Suites (18 suites)
Compression Methods Length: 1
Compression Methods (1 method)
Extensions Length: 87
Extension: server_name (len=21) name=hazards.fema.gov
Extension: renegotiation_info (len=1)
Extension: supported_groups (len=8)
Extension: ec_point_formats (len=2)
Extension: session_ticket (len=0)
Extension: channel_id_old (len=0)
Extension: status_request (len=5)
Extension: signature_algorithms (len=18)
<snip>

新版应用成功场景

Handshake Protocol: Client Hello
Handshake Type: Client Hello (1)
Length: 508
Version: TLS 1.2 (0x0303)
Random: 3f299f8cfc9675877c69d9d858d0b31f5ed6bd8ae9fdc0818bee74ec96f48629
Session ID Length: 32
Session ID: 7eb39bb9ec2e9e53a9b803c1d085ca359289fb7a6202d0b65e3015455dcbc0db
Cipher Suites Length: 32
Cipher Suites (16 suites)
Compression Methods Length: 1
Compression Methods (1 method)
Extensions Length: 403
Extension: Reserved (GREASE) (len=0)
Extension: server_name (len=21) name=hazards.fema.gov
Extension: supported_versions (len=7) TLS 1.3, TLS 1.2
Extension: status_request (len=5)
Extension: key_share (len=43) x25519
Extension: supported_groups (len=10)
Extension: signature_algorithms (len=18)
Extension: extended_master_secret (len=0)
Extension: ec_point_formats (len=2)
Extension: application_layer_protocol_negotiation (len=14)
Extension: psk_key_exchange_modes (len=2)
Extension: application_settings (len=5)
Extension: renegotiation_info (len=1)
Extension: session_ticket (len=0)
Extension: compress_certificate (len=3)
Extension: signed_certificate_timestamp (len=0)
Extension: Reserved (GREASE) (len=1)
Extension: padding (len=199)
<snip>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 19:47:35