我正在尝试连接到使用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,则可能仍会失败。