使用Indy 10 IdHTTP和TLS 1.2

时间:2016-06-14 10:53:41

标签: delphi ssl delphi-xe2 indy10 tls1.2

我使用Delphi XE2和Indy 10.5.8.0

目前我需要更改与我们的服务器之一的连接,以便仅使用TLS 1.2,目前我们正在使用TLS 1.0

作为IdHTTP的处理程序,正在使用IdSSLIOHandlerSocketOpenSSL。

我尝试将方法更改为sslvTLSv1_2但它不起作用,因为连接提供了下一个错误: “使用SSL连接时出错。错误:1409442E:SSL例程:SSL3_READ_BYTES:tlsv 1警报协议版本”

我使用默认密码列表,不确定我是否需要任何特定密码(目前要求服务器提供商知道他们使用的密码)

这是Handler的配置:

SSLIOHandler Config

我不习惯SSL连接,因为它使用默认设置,一切正常。

我试图检查WireShark并且在两种情况下(当方法是sslvTLSv1_2或sslvTLSv1时)我得到指向tls版本1.0的相同错误。

方法sslvTLSv1:

Method sslvTLSv1

方法sslvTLSv1_2:

enter image description here

如果我遗失了某些东西,请指出正确的方向。

提前感谢您提供的所有帮助。

P.S:刚收到服务器提供商的回复,他们使用AES_128_GCM作为他们的密码,它是否在默认的密码列表中?

WireShark>客户端Hello包:

enter image description here enter image description here

1 个答案:

答案 0 :(得分:8)

以防有些人遇到类似的错误,在我的情况下,正在使用的是SSL库(libeay32,ssleay32),它已经过时(2010年)。更新SSL后,它可以正常运行而不会出现任何错误。

感谢@RemyLebeau指出这是一个更新问题=)