【问题标题】:Unknown SSL protocol error in connection to etws.etrade.com:443连接到 etws.etrade.com:443 的未知 SSL 协议错误
【发布时间】:2014-11-16 02:46:54
【问题描述】:

我正在尝试连接到使用 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->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);

【问题讨论】:

    标签: php ssl curl etrade-api


    【解决方案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,它可能仍然会失败。

    【讨论】:

    • 那行得通。非常感谢你。我正在使用 etrade API,我想知道他们为什么要包含它?
    • 这可能已经过时了,可能是以前添加的以解决一些问题。但是随着到处放弃 SSL 3.0,这已经过时了。
    猜你喜欢
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 2019-01-11
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 2013-11-18
    相关资源
    最近更新 更多