与 etws.etrade.com:443 相关的未知 SSL 协议错误


Unknown SSL protocol error in connection to etws.etrade.com:443

我正在尝试连接到使用OAuth的eTrade API。我正在尝试请求令牌。

我尝试连接的域具有 SSL 证书。

连接使用 TLS 1.2。连接使用 AES_128_GCM 进行加密和身份验证,并使用ECDHE_RSA作为密钥交换机制。

这是我得到的确切错误

捕获异常 错误代码 : 1001 错误消息 : 错误编号 : 35 错误 : 与 etws.etrade.com:443 #0 相关的未知 SSL 协议错误 #0/home/detroitclicks/public_html/etrade/Common/etHttpUtils.class.php(174): etHttpUtils->DoHttpRequest() #1/home/detroitclicks/public_html/etrade/OAuth/etOAuth

.class.php(58): etHttpUtils->GetResponse() #2/home/detroitclicks/public_html/etrade/Samples/test_etOAuth.php(54): etOAuth->GetRequestToken() #3 {main}退出。。。

我不确定这是否重要,但我在我的一个 php 文件中设置了这个:

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
    curl_setopt($ch, CURLOPT_SSLVERSION, 3);
The connection uses TLS 1.2.   
....
curl_setopt($ch, CURLOPT_SSLVERSION, 3);

TLS 1.2 的要求与版本 3 (SSL 3.0) 的显式设置与CURLOPT_SSLVERSION不匹配。 只需删除此设置,它应该尽力而为。如果您的本地 SSL 堆栈尚不支持 TLS 1.2,则可能仍会失败。