" SSL协商失败"在Delphi XE8中

时间:2015-04-08 15:24:05

标签: delphi ssl indy10 delphi-xe8

我正在Delphi XE8中重新编译Delphi XE3应用程序。

应用程序使用TIdSMTP对象向Amazon SES(尝试过爱尔兰和北弗吉尼亚)发送消息。

这些是TIdSMTP组件中设置的一些属性(更新:添加了更多字段):

  • IOHandlerIdSSLIOHandlerSocketOpenSSL,包含以下子字段: Destination是email-smtp.eu-west-1.amazonaws.com:25,Hostemail-smtp.eu-west-1.amazonaws.comIPVersionId_IPv4,{{1} }是MaxLineActionmaExceptionMaxLineLength16384Port25ReadTimeOut-1RecvBufferSize32768ReuseSocketrsOSDependentSendBufferSize32768SSLOptions.MethodsslvTLSv1为{{ 1}},SSLOptions.ModesslmUnassignedSSLOptions.SSLVersions[sslvTLSv1]TransparentProxyIdSSLIOHandlerSocketOpenSSL.TransparentProxy.AutenticationNoAuthentication },TransparentProxy.IPVersionId_IPv4TransparentProxy.Port1080TransparentProxy.VersionsvNoSocks

  • UseNagleTrue

  • Port25
  • “关于Indy”是10.6.2.5263

使用XE8,我得到“SSL协商失败”。以下代码中的行UseTLS处的异常。完全相同的代码适用于XE3,所以我猜它可能与Indy更新有某种关系。

utUseExplicitTLS

为什么我在XE8中遇到此异常?现在安装XE8的机器与安装XE3的机器相同,并且SSL dll仍在相应的Degug和Release输出目录中。 XE8现在只使用Debug输出目录,旧的XE3可执行文件仍然可以从Release输出目录中正常工作。

更新:只需通过更新Dev计算机中的旧SSL DLL即可解决此问题。显然,最新的Indy默认禁用不安全的东西。

0 个答案:

没有答案