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

有欲發表於2024-06-07

環境

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 屬性。由於文件並不明確,請您自行嘗試,這裡沒有明確的建議。不過似乎並不複雜。

相關文章