EIdOSSLConnectError 与 SSL 连接时出错 - 观察到 EOF
EIdOSSLConnectError Error connecting with SSL - EOF was observed
我的平台是这个
- OS X Yosemite 10.10.5
- 最新 Indy(10.6.2.0,下载 2016 年 3 月 13 日 - Indy10_5346.zip)
- 拉撒路 1.4.4
关于我尝试过的 OpenSSL 版本:
- HomeBrew OpenSSL 安装如下:"brew install openssl
--通用
- 内置 (0.9.8) OS X 在 /usr/lib/
中提供
我遇到错误:
EIdOSSLConnecError Error connecting with SSL - EOF was observed that
violates the protocol
In file Protocols/IdSSLOpenSSLHeaders.pas at line 19418
但是,由于我使用的是最新的一切 - 为什么我会收到此错误?
(发生在对 OpenEncodedConnection 的调用中)
以下是我设置 Indy HTTP 客户端 OpenSSL 处理程序的方法:
FIOHandlerOpenSSL := TIdSSLIOHandlerSocketOpenSSL.Create;
FIOHandlerOpenSSL.SSLOptions.SSLVersions := [sslvSSLv23,sslvTLSv1,sslvTLSv1_1,sslvTLSv1_2]
FIOHandlerOpenSSL.Mode := sslmClient;
FIOHandlerOpenSSL.VerifyMode := [];
FIOHandlerOpenSSL.VerifyDepth := 0;
EOF 表示连接意外关闭,在这种情况下是在握手期间。您正在启用多个 SSLVersions,这意味着 Indy 将在内部使用 SSLv23 进行连接。这只有在服务器使用 SSLv23 进行侦听时才有效,从而允许客户端和服务器协商兼容的 SSL/TLS 版本。如果服务器使用特定的 SSL/TLS 版本而不是 SSLv23,则 SSLv23 将无法在客户端运行。您必须在客户端使用相同的特定 SSL/TLS 版本才能匹配。
此问题的另一个原因可能是超时。
After analysis it was finally identified the problem was due to a timeout in milliseconds, rather than seconds. Once fixed, the problem resolved itself.
我的平台是这个
- OS X Yosemite 10.10.5
- 最新 Indy(10.6.2.0,下载 2016 年 3 月 13 日 - Indy10_5346.zip)
- 拉撒路 1.4.4
关于我尝试过的 OpenSSL 版本:
- HomeBrew OpenSSL 安装如下:"brew install openssl --通用
- 内置 (0.9.8) OS X 在 /usr/lib/ 中提供
我遇到错误:
EIdOSSLConnecError Error connecting with SSL - EOF was observed that violates the protocol
In file Protocols/IdSSLOpenSSLHeaders.pas at line 19418
但是,由于我使用的是最新的一切 - 为什么我会收到此错误?
(发生在对 OpenEncodedConnection 的调用中)
以下是我设置 Indy HTTP 客户端 OpenSSL 处理程序的方法:
FIOHandlerOpenSSL := TIdSSLIOHandlerSocketOpenSSL.Create;
FIOHandlerOpenSSL.SSLOptions.SSLVersions := [sslvSSLv23,sslvTLSv1,sslvTLSv1_1,sslvTLSv1_2]
FIOHandlerOpenSSL.Mode := sslmClient;
FIOHandlerOpenSSL.VerifyMode := [];
FIOHandlerOpenSSL.VerifyDepth := 0;
EOF 表示连接意外关闭,在这种情况下是在握手期间。您正在启用多个 SSLVersions,这意味着 Indy 将在内部使用 SSLv23 进行连接。这只有在服务器使用 SSLv23 进行侦听时才有效,从而允许客户端和服务器协商兼容的 SSL/TLS 版本。如果服务器使用特定的 SSL/TLS 版本而不是 SSLv23,则 SSLv23 将无法在客户端运行。您必须在客户端使用相同的特定 SSL/TLS 版本才能匹配。
此问题的另一个原因可能是超时。
After analysis it was finally identified the problem was due to a timeout in milliseconds, rather than seconds. Once fixed, the problem resolved itself.