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

Indy10适配OpenSSL 3.X及TLS1.3的技术咨询(RAD Studio XE5)

Indy10 + TLS1.3 支持方案(基于RAD Studio XE5)

核心结论

要在现有应用中添加TLS1.3支持,必须同时升级Indy10到兼容OpenSSL 3.x的版本,并替换OpenSSL为3.x系列库。


具体实现方案

1. 升级OpenSSL至3.x系列

  • OpenSSL 1.0.2u原生不支持TLS1.3,必须切换到支持该协议的版本。推荐选用OpenSSL 3.0.x LTS分支(长期支持),避免使用已停止维护的1.1.1分支。
  • 下载与你的应用架构(32位/64位)匹配的OpenSSL 3.x二进制动态库(libssl-3.dll、libcrypto-3.dll,部分版本会带平台后缀如libssl-3-x64.dll),替换原有1.0.2u的库文件。

2. 升级Indy10到兼容OpenSSL 3.x的版本

  • RAD Studio XE5自带的Indy10版本不支持OpenSSL 3.x的API和TLS1.3,需要获取Indy10的最新维护版源码:
    • 编译源码时,针对XE5的Delphi版本调整代码(部分新语法可能需要修改以适配XE5的编译器)。
    • 编译完成后,替换项目中原有的Indy组件引用,确保使用新编译的Indy10库。

3. 配置Indy组件启用TLS1.3

在代码中明确指定TLS版本集合,以TIdSSLIOHandlerSocketOpenSSL为例:

IdSSLIOHandlerSocketOpenSSL1.SSLOptions.SSLVersions := [sslvTLSv1_2, sslvTLSv1_3];
  • 可通过IdSSLOpenSSL.LoadOpenSSLLibrary函数验证OpenSSL库是否加载成功,返回True则表示加载正常。

常见问题解答

是否需要同时升级Indy10与OpenSSL至3.X版本?

是的,二者缺一不可:

  • OpenSSL 1.0.2u原生不支持TLS1.3,必须升级到3.x才能启用该协议。
  • 旧版Indy10无法适配OpenSSL 3.x的API变更(如弃用旧加密函数、引入Provider架构),必须升级Indy10才能正常调用OpenSSL 3.x的TLS1.3功能。

Indy10是否已支持OpenSSL 3.X及TLS1.3?

Indy10的最新维护版本已完全支持OpenSSL 3.x和TLS1.3,但注意:

  • XE5自带的Indy10是旧版本,不具备该能力,必须手动升级。
  • 部分新的Indy10代码可能用到XE5不支持的Delphi特性,需要少量调整才能在XE5环境下编译通过。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 11:15:01