Deplhi with Indy and TLS, problems with https://testesmoleculares.com.br/ (Cloudflare)
我不具备使用Indy的Delphi和TLS的专业知识。
也许这不是问题,只是配置,我需要示例。
我也尝试过关于Stackoverflow的一些问题,但都没有成功。
页面:https://testesmoleculares.com.br/
错误:
1 2 3 4 5 6 7 8 9 | --------------------------- Debugger Exception Notification --------------------------- Project IntegradorApoiado.exe raised exception class EIdOSSLUnderlyingCryptoError with message 'Error connecting with SSL. error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure'. --------------------------- Break Continue Help --------------------------- |
实际配置:
1 2 3 | LHandler.SSLOptions.Method := sslvSSLv2; LHandler.SSLOptions.Mode := sslmClient; LHandler.SSLOptions.SSLVersions := [sslvSSLv2]; |
尝试:
1 2 | IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1_2; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.SSLVersions := [sslvTLSv1_2]; |
有人可以帮忙吗?
也许提供POST的示例?我正在使用Delphi XE4
谢谢!
Github问题:
https://github.com/IndySockets/Indy/issues/317
尝试:
- https://stackoverflow.com/a/49061252
- ssl v3贵宾犬并与indy一起移至tls
- 将Indy 10 IdHTTP与TLS 1.2结合使用
- https://indy.fulgan.com/SSL/?C=M;O=A
- 其他
在没有看到实际握手数据的情况下,很难确定为什么失败。
但是,我会提到
1 2 | LHandler.SSLOptions.Mode := sslmClient; LHandler.SSLOptions.SSLVersions := [sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2]; |
通过指定多个TLS版本,这将允许OpenSSL协商双方均支持的可用版本。
此外,请确保您使用的是Indy的最新版本(如果尚未使用),以便拥有TLS支持的所有修补程序,例如使用SNI(许多服务器现在都需要TLS)客户使用)。
我可以使用TLS 1.2在Web浏览器中连接到
更新:基于您在Indy的问题跟踪器中针对同一问题发布的其他评论(#317:TLS-Cloudflare上的https://testesmoleculares.com.br/问题),您使用的是过时的版本的Indy(10.6.0.4975),无法完全处理TLS 1.2。您需要升级到最新版本(10.6.2)才能正确使用TLS 1.2。