创建SSL上下文时出错(140A90F1:lib(20):func(169):原因(241))



我们某个位置的单个用户在一天中的任意时间点发送电子邮件时收到"创建SSL上下文时出错"。一旦发生错误,他们需要重新启动程序。该程序适用于我们的其他(电子邮件(用户。

完整错误为:

Error creating SSL context.
error:140A90F1:lib(20):func(169):reason(241)

该错误映射到"错误:140A90F1:SSL例程:SSL_CTX_new:无法加载ssl2 md5例程">

这给了我更多的机会,我发现了一些有趣的结果。相当多的结果适用于不同的环境,但在遗留的Embarcadero支持表单(但适用于HTTP(中,Delphi用户也遇到了惊人的相似问题。Dave Nottage(TeamB(甚至在某个时候插话说,他的一位客户也遇到了这个问题。

雷米谈到了你不应该在SSLv2甚至SSLv3中使用OpenSSL,然后话题转到了正在使用的DLL版本,然后就掉到了悬崖上。至于线程的第一部分,我的用户使用的是Office365,IdSMTP.UseTLS设置为utUseExplicitTLS,而IdSMTP.AuthType设置为satDefault。IOHandler(TIdSSLIOHandlerSocketOpenSSL(SSL方法已设置为sslvTLSv1_2,但运气不佳。至于线程的后半部分,我的用户已经从这里收到了最新的Indy OpenSSL DLL。

在OpenSSL github上,用户也遇到了同样的问题,包括它来了又走。他们甚至更新了印地图书馆,但运气不佳。

这是OpenSSL的东西,Indy的东西,Delphi的东西还是我的东西?根据谷歌返回的多个结果,我可以看出这是所有开发环境(包括Delphi10.1(中的一个常见问题

我能做些什么来调试它?我可以放下软件的私人版本。有什么我可以尝试的设置吗?

我遇到了同样的问题,但随后使用了:

libcrypto-1_1.dll + libssl-1_1.dll

而不是旧的:

libeay32.dll + ssleay32.dll

问题消失了。

最新更新