Delphi Indy10 需要 Linux 下的 SSL 库?
Delphi Indy10 required SSL libraries under Linux?
使用 Delphy 10.4:
我正在尝试使用 IdServerIOHandlerSSLOpenSSL 启动 IdTCPServer。
在 Linux 下,我收到“EIdOSSSLCouldNotLoadSSLLibrary;无法加载 SSL 库。”
在 Windows 下,这工作正常。
在 SSL 目录中,我现在同时拥有 Windows DLL 和我通过编译“openssl-1.1.1j”生成的 .so 文件。
所以SSL目录包含libeay32.dll, ssleay32.dll, libcrypto.so, libssl.so.
为什么在Linux下不接受?
首先,您不能在 Linux 上使用 Windows DLL。您需要 Linux 个二进制文件,并且 Linux TIdSSLIOHandlerSocketOpenSSL
将寻找 libssl.so.x.x.x[l]
和 libcrypto.so.x.x.x[l]
(其中 x.x.x
是版本 1.0.2
或更低,并且 [l]
是可选字母 a..z
,或 libssl.so
/libcrypto.so
映射到此类版本的符号链接)。
其次,TIdSSLIOHandlerSocketOpenSSL
,并通过扩展 TIdServerIOHandlerSSLOpenSSL
、does not support OpenSSL 1.1.x,仅 OpenSSL 1.0.2 及更早版本,如您在上面所见。
要使用 OpenSSL 1.1.x,您需要使用不同的 IOHandler
。一个目前在 pull request 中等待审查,因此尚未合并到 Indy 的主要代码中,但您可以尝试一下,看看它是否适合您:
使用 Delphy 10.4: 我正在尝试使用 IdServerIOHandlerSSLOpenSSL 启动 IdTCPServer。 在 Linux 下,我收到“EIdOSSSLCouldNotLoadSSLLibrary;无法加载 SSL 库。” 在 Windows 下,这工作正常。
在 SSL 目录中,我现在同时拥有 Windows DLL 和我通过编译“openssl-1.1.1j”生成的 .so 文件。
所以SSL目录包含libeay32.dll, ssleay32.dll, libcrypto.so, libssl.so.
为什么在Linux下不接受?
首先,您不能在 Linux 上使用 Windows DLL。您需要 Linux 个二进制文件,并且 Linux TIdSSLIOHandlerSocketOpenSSL
将寻找 libssl.so.x.x.x[l]
和 libcrypto.so.x.x.x[l]
(其中 x.x.x
是版本 1.0.2
或更低,并且 [l]
是可选字母 a..z
,或 libssl.so
/libcrypto.so
映射到此类版本的符号链接)。
其次,TIdSSLIOHandlerSocketOpenSSL
,并通过扩展 TIdServerIOHandlerSSLOpenSSL
、does not support OpenSSL 1.1.x,仅 OpenSSL 1.0.2 及更早版本,如您在上面所见。
要使用 OpenSSL 1.1.x,您需要使用不同的 IOHandler
。一个目前在 pull request 中等待审查,因此尚未合并到 Indy 的主要代码中,但您可以尝试一下,看看它是否适合您: