I get an error:
Could not load SSL library.
Also, maybe test with Synapse or with FPC's HTTP client to help narrow down whether it's Indy, the SSL libs, or something else.checked, in synapse ssl working
Make sure you also have the libssl .so in addition to the libcrypto .so.
I edited my post above.Ok. I'm glad it's working. @Remy regularly visits this forum, maybe he can incorporate your changes in Indy trunk, then I can update in OPM.
Apparently indy does not support libcrypto.so.1.1
If the symbolic link libcryto.so refers to libcrypto.so.1.1, then the Could not load SSL library error occurs.
If you edit IdSSLOpenSSLHeaders.pas like this:
Row: 19483Replace with:
SSLDLLVers: array [0..8] of string = ('', '.10', '. 1.0.2', '. 1.0.1', '. 1.0.0', '0.9.9', '. 0.9.8 ','. 0.9.7 ',' 0.9.6 ');Loading libcrypto.so.1.0.0 runs currectly and SSL works!
SSLDLLVers: array [0..8] of string = ('.0', '.10', '. 1.0.2', '. 1.0.1', '. 1.0.0', '0.9.9', '.0.9.8', '. 0.9.7', '0.9.6');
Because of this editing, loading .so will not be possible and problems can arise on other systems.
I attach corrected IdSSLOpenSSLHeaders.pas (last svn rev. 5451) which correctly looks for:
I have glanced at the patch and see that I need to make some tweaks to it before I incorporate it. I will report back when it is checked in to Indy's SVN.
Why is this part of the code inactive in Linux?
{$UNDEF USE_BASEUNIX_OR_VCL_POSIX_OR_KYLIXCOMPAT}
{$IFDEF USE_BASEUNIX_OR_VCL_POSIX}
{$UNDEF USE_BASEUNIX_OR_VCL_POSIX_OR_KYLIXCOMPAT} // <--
{$ENDIF}
{$IFDEF KYLIXCOMPAT}
{$UNDEF USE_BASEUNIX_OR_VCL_POSIX_OR_KYLIXCOMPAT} // <--
{$ENDIF}
{$UNDEF USE_BASEUNIX_OR_VCL_POSIX_OR_KYLIXCOMPAT}
{$IFDEF USE_BASEUNIX_OR_VCL_POSIX}
{$DEFINE USE_BASEUNIX_OR_VCL_POSIX_OR_KYLIXCOMPAT} // <--
{$ENDIF}
{$IFDEF KYLIXCOMPAT}
{$DEFINE USE_BASEUNIX_OR_VCL_POSIX_OR_KYLIXCOMPAT} // <--
{$ENDIF}
I know this is a Lazarus thread, but for those viewing it relating to Delphi, or perhaps FPC as well, using the Indy source from March 2019 I had to change
{$IFDEF UNIX}
var
GIdLoadSymLinksFirst: Boolean = false;
in IdSSLOpenSSLHeaders.pas to make it work with OpenSSL 1.0.2k on Centos 7
IdOpenSSLSetLoadSymLinksFirst(False);
IdOpenSSLSetCanLoadSymLinks(False);