I have been using:
Delphi XE8
Indy version 10.6.2.5263
precompiled open SSL dll files (Win 32bit) v1.0.2.l
TIdSSLIOHandlerSocketOpenSSL
with Method
set to sslvSSLv23
to submit a POST request against a server. It worked like a charm for many months.
All of a sudden, a wild error popped up:
14094410 sslv3 alert handshake failure.
A colleague is using SOAP UI to submit requests against the same server by forcing TLS 1.2 and it works. I tried to set the TIdSSLIOHandlerSocketOpenSSL1
Method to sslvTLSv1_2
, and changed the Mode to sslmClient
, but the result is always the same.
I thought by setting the Method to sslvTLSv1_2
, it is impossible to receive an error related to SSLv3.
I have checked these stackoverflow posts:
Indy 10 and sslvTLSv1_2
How to make Indy OpenSSL compatible with most servers
and some other threads, but I am not able to find the root cause of this issue.
Maybe I am missing something. Could you please give me a hint?
Had the same problem and the source code below worked like a charm. I copied this code from this site but I can't find the link to credit the original answer. Note that source code is not mine.
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;
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;
Make sure you have the latest libeay32.dll and ssleay32.dll in your application folder
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With