我正在尝试连接到使用OAuth的eTrade API。我正在尝试请求令牌。
我尝试连接的域名具有SSL证书。
连接使用TLS 1.2。该连接使用AES_128_GCM进行加密和验证,并使用ECDHE_RSA作为密钥交换机制。
这是我得到的确切错误
捕获异常 错误代码:1001错误消息:错误号:35错误:与etws.etrade.com:443#0 / home相关的未知SSL协议错误/detroitclicks/public_html/etrade/Common/etHttpUtils.class.php(174):etHttpUtils-> DoHttpRequest()#1 /home/detroitclicks/public_html/etrade/OAuth/etOAuth.class.php(58):etHttpUtils-&gt ; 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);
答案 0 :(得分: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,它可能仍会失败。