简体   繁体   中英

Unknown Protocol error with Indy SSL on Delphi 11

When using the Indy TCP Server with the IO handler we get the following error.

routines:SSL23_GET_CLIENT_HELLO:unknown protocol

This error looks similar to the SSL Libary issue 10.3.3 however those fixes are in place for Delphi 11.

Updating Indy does not appear possible in 11 as you are unable to uninstall the features.

Does anyone have a fix or work around?

As Remy Lebeau Stated above the issue was not to do with the indy component library itself but an older implementation.

in our case we had set the PassThrough in an earlier version of Delphi and Indy:

TIdSSLIOHandlerSocketBase(AContext.Connection.IOHandler).PassThrough := False;

This worked up to Delphi 10.3.3 without causing any problems, however, this code had to be removed in 11 for the Client and Server to function correctly.

Delphi 10.3 has the TIdSSLIOHandlerSocketBase in IdSSL.pas which by default sets the fPassThrough to false on creation

Later version of the TIdSSLIOHandlerSocketBase in IdSSL.pas includes the InitComponent procedure, which sets the fPassThrough:= True;

This appears to be a breaking change and has also broken our implementation.

The fix by Reallyethical solves the issue

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM