执行curl命令提示“failed:error in the pull faction”错误的解决方法
问题描述
Linux系统的ECS实例访问第三方软件的API接口异常,执行cul https://api.xxxxx.com命令,提示如下错误。
failed:error in the pull faction
问题原因
由于TLSv1协议的安全问题,很多HTTPS站点禁用了TLSv1协议,所以使用TLSv1协议访问API接口会出现异常。
解决方案
排查步骤
1.从报错信息中分析,推测应该是应用层产生的报错,网络层的报错信息一般为timeout居多。
2.使用telnet命令登录到服务器,测试服务器的443端口状态正常,执行curl命令获取其他站点的网页,显示也是报同样的错误,初步推测为应用层产生的问题。
3.但是很难推测具体是应用层的什么问题,使用Wireshark抓包工具,通过抓取正常机器的报文和异常机器的的报文进行分析问题原因。
4.抓取到正常机器的报文,客户端与服务端建立SSL连接的Hello报文是通过TLSv1.2协议建立,服务端能返回Hello报文,从而进一步的建立HTTPS连接,如下图所示。
5.抓取到异常机器的报文,客户端与服务端建立SSL连接Hello报文是通过TLSv1协议建立,服务端直接RST了返回不到Hello报文,如下图所示。
6.由于TLSv1协议的安全问题,很多HTTPS站点禁用了TLSv1协议,所以使用TLSv1协议访问API接口会出现异常。
解决方案
1.在系统内升级NSS服务。
2.重启系统后访问恢复正常。
适用于
•云服务器ECS
如果您有其他问题,可以联系汉中创云互联阿里云代理商,为您提供一对一专业全面的技术服务,同时新老阿里云会员,均可享受我公司代理商价格,欢迎咨询!
我有话说: