Jan*_*gen 2 delphi openssl certificate indy10 delphi-xe2
从OpenSSL 1.02f升级到1.02g后,我的Win32程序失败.
我确保在升级后重新启动,并且我已经验证了正确的libeay32.dll,libssl32.dll并且ssleay32.dll正在C:\Windows\SysWOW64(并且如果我将它们复制到我的app目录中也没有帮助).
var
lIOHandleSSL : TIdServerIOHandlerSSLOpenSSL;
FWebBrokerBridge : TIdHTTPWebBrokerBridge; // = class(TIdCustomHTTPServer)
begin
FWebBrokerBridge := TIdHTTPWebBrokerBridge.Create(Self);
LIOHandleSSL := TIdServerIOHandlerSSLOpenSSL.Create(FWebBrokerBridge); // LIOHandleSSL.SSLOptions.method is sslvTLSv1
LIOHandleSSL.SSLOptions.CertFile := ...
LIOHandleSSL.SSLOptions.RootCertFile := ...
LIOHandleSSL.SSLOptions.KeyFile := ...
LIOHandleSSL.OnGetPassword := HTTPSIOHandlerSSLOpenSSLGetPassword;
FWebBrokerBridge.IOHandler := LIOHandleSSL;
FWebBrokerBridge.Active := true;
Run Code Online (Sandbox Code Playgroud)
错误发生EIdOSSLCouldNotLoadSSLLibrary: Could not load SSL library在"活动"语句中.
可以发生什么,以及如何解决它?
这是一个Delphi XE2应用程序,Indy版本是10.5.8.0
FWIW 这是OpenSSL 1.02g更新日志
[已编辑添加]
- 我们使用此OpenSSL二进制安装程序.
- 我添加了WhichFailedToLoad()函数(from IdSSLOpenSSLHeaders.pas)并返回以下字符串:SSLv2_method,SSLv2_server_method,SSLv2_client_method
- 我已从此问题中删除了我的证书文件的描述.Ken White正确地指出代码不在加载证书的阶段
这包括在这里:http://www.indyproject.org/sockets/blogs/changelog/20150907.en.aspx
总之,SSLv2不安全,因此OpenSSL的某些分销商禁用SSL2.您似乎正在使用这样的OpenSSL.较旧版本的Indy认为以下功能至关重要:
SSLv2_methodSSLv2_server_methodSSLv2_client_method如果OpenSSL DLL未导出这些函数,则无法加载这些版本的Indy.
要解决此问题,您需要执行以下操作之一:
| 归档时间: |
|
| 查看次数: |
1135 次 |
| 最近记录: |