如何通过curl解决SSL超时问题?

时间:2016-09-13 04:02:51

标签: ubuntu ssl curl ubuntu-14.04 ups

我试图通过PHP + Curl使用UPS的在线工具API时超时。这个问题今天早上就开始了。我可以从bash直接在Ubuntu 14.04上使用Curl重现这个问题。但是,在Ubuntu 16.04上,我可以毫无问题地连接。

UPS支持并不是特别有用:

  

哪些已完成TLS 1.2迁移的服务器尚不清楚。建议确保暂时为TLS 1.0,1.1和1.2启用安全协议。虽然拥有完整的堆栈,但应尽量减少问题,因为协商将利用双方最高约定的支持协议。

这里是14.04的详细输出:

root@ubuntu14-nyc2-01:/etc/ssl/certs# curl https://onlinetools.ups.com -v
* Rebuilt URL to: https://onlinetools.ups.com/
* Hostname was NOT found in DNS cache
*   Trying 153.2.228.76...
* connect to 153.2.228.76 port 443 failed: Connection timed out
*   Trying 153.2.224.76...
* After 86387ms connect time, move on!
* connect to 153.2.224.76 port 443 failed: Connection timed out
* Failed to connect to onlinetools.ups.com port 443: Connection timed out
* Closing connection 0
curl: (7) Failed to connect to onlinetools.ups.com port 443: Connection timed out

如果我只是尝试通过OpenSSL连接,它也会超时:

root@ubuntu14-nyc2-01:/etc/ssl/certs# openssl s_client -connect onlinetools.ups.com:443

任何想法是什么问题?有关故障排除的指示?您是否也对Ubuntu 14.04中的此UPS API有疑问?

以下是相关库的版本:

  1. Curl:试用7.50,OpenSSL / 1.0.2h; 7.35,withOpenSSL / 1.0.1f
  2. OpenSSL:尝试过1.0.2h和1.0.1f
  3. 我尝试从haxx.se中拉出cacerts并使用--cacerts arg将Curl指向它,没有运气。

    我在这里几乎不知所措......我错过了什么?

2 个答案:

答案 0 :(得分:3)

连接超时是TCP级别问题,而不是SSL / TLS问题。它只是无法连接到主机。在这种情况下,您甚至无法将telnet或netcat设置为对等体。根据问题影响的目标数量,可能是目标端的防火墙或路由器问题(即仅受影响的目标)或您端的一些常见网络问题(即大多数主机不起作用)。

答案 1 :(得分:0)

这不是问题的答案,但有些人可能会对搜索ups + SSL / TLS问题感兴趣...深入UPS网站:

  

重要:2017年实施更新

     

UPS将于2017年9月1日开始进行更改   2017年12月31日支持加强我们的安全性。在这段时间,   您可能会看到使用TLS1.0或TLS1.0的事务的间歇性故障   早。

     

自2009年12月31日起, UPS仅接受TLS 1.1和TLS 1.2   安全协议。强烈建议最新   版本,TLS 1.2,实施。在那个日期之后,任何沟通   使用旧协议(TLS 1.0或更早版本)提交给UPS的请求   会失败。

https://www.ups.com/us/en/help-center/technology-support/data-security.page