1

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

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

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

这是我得到的确切错误

捕获异常错误代码:1001 错误消息:错误编号:35 错误:连接到 etws.etrade.com:443 #0 /home/detroitclicks/public_html/etrade/Common/etHttpUtils.class.php(174) 的未知 SSL 协议错误: 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);
4

1 回答 1

1
The connection uses TLS 1.2.   
....
curl_setopt($ch, CURLOPT_SSLVERSION, 3);

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

于 2014-11-16T05:00:22.730 回答