Error connecting with SSL. error:1409442E:SSL routines:SSL3_READ_BYTES:tlsv1 alert protocol version

环境

Windows 11 Pro 23H2
Delphi 12 Version 29.0.50491.5718
CentOS Linux release 7.9.2009 (Core)
nginx version: nginx/1.20.1

发生的问题

Project ProjectName.exe raised exception class EIdOSSLUnderlyingCryptoError with message 'Error connecting with SSL.error:1409442E:SSL routines:SSL3_READ_BYTES:tlsv1 alert protocol version'.

在 delphi 开发中使用 TIdHttp 配合 TIdSSLIOHandlerSocketOpenSSL 进行 https 访问时可能会遇到上述错误。在网上可以查到各种解决办法,比如更换 dll 文件等。这里提供另外两个思路:

  1. 更改 Nginx 配置。如果您的 Nginx 配置文件中有如下指令ssl_protocols TLSv1.2 TLSv1.3;,可以尝试修改为ssl_protocols TLSv1 TLSv1.1 TLSv1.2;。当然前提是您正确的使用了 TIdSSLIOHandlerSocketOpenSSL。
  2. 更改 TIdSSLIOHandlerSocketOpenSSL 的 SSLOptions 属性中的 SSLVersions 属性。由于文档并不明确,请您自行尝试,这里没有明确的建议。不过似乎并不复杂。
posted @ 2024-06-07 09:41  有欲  阅读(20)  评论(0编辑  收藏  举报