我一直在使用:
Delphi XE8
Indy版本10.6.2.5263
预编译的OpenSSL dll文件(Win 32位),版本为1.0.2.l
TIdSSLIOHandlerSocketOpenSSL
,其中Method
设置为sslvSSLv23
来向服务器提交POST请求。几个月来,它一直运行得很好。
突然间,一个错误出现了:
14094410 sslv3 alert handshake failure.
我的同事使用SOAP UI向同一台服务器提交请求,强制使用TLS 1.2,它可以工作。我尝试将TIdSSLIOHandlerSocketOpenSSL1
的Method
设置为sslvTLSv1_2
,并将Mode更改为sslmClient
,但结果总是相同的。
我认为通过将Method设置为sslvTLSv1_2
,不可能收到与SSLv3相关的错误。
我已经检查了以下这些stackoverflow帖子:
和其他一些主题,但我无法找到这个问题的根本原因。
也许我漏掉了什么。请给我一点提示好吗?
SSLOptions
如何配置。如果将其设置为仅sslvTLSv1_2
,则应该发送 TLS 1.2 hello,除非您正在使用已禁用 TLS 1.2 的 OpenSSL DLL,此时 Indy 将回退到 TLS 1.0。在 OpenSSL 加载到内存后,Indy 的IsOpenSSL_TLSv1_2_Available()
函数返回 true 还是 false? - Remy Lebeau