Delphi 11与Indy HTTPS报错:无法加载SSL库
Delphi 11 Alexandria中TIdHTTP加载SSL库失败问题
我曾使用RAD Studio Delphi Enterprise 10.2(Tokyo)及其预装的Indy组件,通过继承TIdHTTP自定义类并调用TIdHTTP.Get()连接HTTPS服务器,代码如下:
type TCustomIdHTTP = class(TIdHTTP) public constructor Create(AOwner: TComponent); private procedure OnStatusInfoEx(ASender: TObject; const AsslSocket: PSSL; const AWhere, Aret: TIdC_INT; const AType, AMsg: String); end; { TCustomIdHTTP } constructor TCustomIdHTTP.Create(AOwner: TComponent); begin IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil); with IOHandler as TIdSSLIOHandlerSocketOpenSSL do begin OnStatusInfoEx := Self.OnStatusInfoEx; SSLOptions.Method := sslvSSLv23; SSLOptions.SSLVersions := [sslvTLSv1_2, sslvTLSv1_1, sslvTLSv1]; end; inherited Create(AOwner); end; procedure TCustomIdHTTP.OnStatusInfoEx(ASender: TObject; const AsslSocket: PSSL; const AWhere, Aret: TIdC_INT; const AType, AMsg: String); begin SSL_set_tlsext_host_name(AsslSocket, Request.Host); end; var IdHTTP1: TCustomIdHTTP;
该实现运行完全正常。如今在Windows 11系统的新笔记本上安装Delphi Enterprise 11(Alexandria)后,调用TIdHTTP.Get()时抛出异常:
EIdOSSLCouldNotLoadSSLLibrary (Could not load SSL Library)
我已查阅大量资料但未找到解决方案,尝试复制最新版SSL动态链接库libeay32.dll和ssleay32.dll也未成功。请问Delphi 11中有哪些变化导致此问题?
内容的提问来源于stack exchange,提问作者user16413998
相关产品推荐
相关产品推荐

