一次SSL证书切换之后的故障排查

    星期五下班前,在机房把自己支付部门的证书切换一下,貌似相安无事;星期一来到办公室另一个项目的同事说支付接口请求访问不了;想一下是不是自己切换证书引起的;下面是排错步骤:

1、先线下用浏览器访问接口:

一次SSL证书切换之后的故障排查_第1张图片


*访问的是get请求是可以返回数据的,说明证书是没问题的,那么就是本地机房通信问题或者代码问题了;登录机器查看


2、登录有代码的服务器查看:

>>> import urllib2
>>> import urllib
>>> html = urllib2.urlopen("https:xxxxx?jsonData={xxxxxxx")  ###用匿名指代
>>> print html
<addinfourl at 24155344 whose fp = <socket._fileobject object at 0x16e9ed0>>
>>> dir(html)   ##由于返回的是对象,查看具体有哪些方法
['__doc__', '__init__', '__iter__', '__module__', '__repr__', 'close', 'code', 'fileno', 'fp', 'getcode', 'geturl', 'headers', 'info', 'msg', 'next', 'read', 'readline', 'readlines', 'url']
>>> print html.next()   ##查看next有返回值
{"success":2963.48}


*在本机上执行有返回结果,说明通信没问题,而且能返回结果服务端应该也是没问题,那么剩下的就是php代码了


3、百度找到了,解决方式:

在请求的代码加上如下:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

*原因:在本地的机房无法验证SSL证书,那么代码跳过即可。


这次只是一场简单的排错过程,但是也看到了python在日常运维中也是起到了不小的作用的,主要是思路步骤清晰一步一步来。

你可能感兴趣的:(python,ssl,urllib)