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

Windows 11更新后Delphi XE8 Indy OpenSSL出现SSL握手失败错误求助

问题描述

项目在Windows 10上可正常运行,此前Windows 11环境下也能正常工作,但安装非22H2版本的Windows 11更新后,触发以下SSL握手错误:

error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure.

环境配置信息:

  • Indy 10.6.2.5263
  • OpenSSL 1.0.2u
  • Delphi XE8

相关初始化代码:

CInitialized := false;
idHttpC := TIdHTTP.Create(nil);
idHttpC.ConnectTimeout := 80000;
idHttpC.ReadTimeout := 80000;
idHttpC.AllowCookies := true;

// config Redirect's
idHttpC.RedirectMaximum := 35;
idHttpC.HandleRedirects := true;
idHttpC.HTTPOptions := [hoTreat302Like303, hoKeepOrigProtocol];
idHttpC.OnRedirect := IdHTTP1Redirect;

// create Cookie's
idCookieC := TIdCookieManager.Create(IdHttpC);
idHttpC.CookieManager := idCookieC;

// create gzip Compressor
idHttpC.Compressor := TIdCompressorZLib.Create(idHttpC);

// create OpenSSL
lIOHandlerC := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
lIOHandlerC.SSLOptions.Mode := sslmClient;
lIOHandlerC.SSLOptions.SSLVersions := [sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2];
idHttpC.IOHandler := lIOHandlerC;

执行以下请求代码时触发错误:

Result := idHttpC.Get('https://leinestern.de/');

已禁用系统内置杀毒软件和防火墙,无第三方安全工具,询问问题原因及调整方案。


问题分析与解决方案

核心原因

  1. OpenSSL版本过旧:OpenSSL 1.0.2u在2020年12月已停止所有安全维护,Windows 11的更新可能调整了系统底层SSL/TLS行为,淘汰了旧版本支持的弱加密套件或协议逻辑;同时目标网站leinestern.de的服务器SSL配置大概率已升级,不再兼容1.0.2u的加密能力。
  2. Indy与OpenSSL的兼容性缺口:你使用的Indy 10.6.2.5263虽支持TLS 1.2,但和停止维护的OpenSSL 1.0.2u组合,在新系统环境下的握手流程容易出现不匹配。

调整方案

  1. 升级OpenSSL版本
    更换为仍有安全支持的OpenSSL 1.1.1系列(如最新稳定版1.1.1w),注意对应项目的32/64位架构,替换旧的libeay32.dll和ssleay32.dll为1.1.1版本的libcrypto-1_1.dll、libssl-1_1.dll。若尝试OpenSSL 3.x,需确认Indy 10.6.x的兼容性。

  2. 优化SSL协议与加密套件配置

    • 移除已被主流服务器淘汰的TLS 1.0/1.1,仅保留TLS 1.2:
      lIOHandlerC.SSLOptions.SSLVersions := [sslvTLSv1_2];
      
    • 强制指定现代服务器普遍兼容的加密套件:
      lIOHandlerC.SSLOptions.CipherList := 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
      
  3. 升级Indy组件
    将Indy更新至最新的10.6.x稳定版,新版本修复了大量SSL/TLS兼容性问题,能更好适配新系统环境及新版OpenSSL。

  4. 验证系统SSL配置
    检查注册表路径HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client下的Enabled值是否为0x1,确保系统层面未限制TLS 1.2的使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 01:25:31