通过python执行请求时出现SSL证书错误
Iam正在尝试对HTTPS url进行API调用:通过python执行请求时出现SSL证书错误,python,ssl,certificate,Python,Ssl,Certificate,Iam正在尝试对HTTPS url进行API调用: response = requests.request("GET", url, headers=headers, params=None, verify=True) 我面临着以下错误。当我通过cUrl或Postman调用API时,它工作得很好 回溯(最近一次调用):文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\urllib3\conne
response = requests.request("GET", url, headers=headers, params=None, verify=True)
我面临着以下错误。当我通过cUrl或Postman调用API时,它工作得很好
回溯(最近一次调用):文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\urllib3\connectionpool.py”,
第601行,在urlopen中
chunked=chunked)文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\urllib3\connectionpool.py”,
第346行,输入请求
self.\u validate\u conn(conn)文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\urllib3\connectionpool.py”,
线路850,在连接处
conn.connect()文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\urllib3\connection.py”,
第326行,连接中
ssl\u context=context)文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\urllib3\util\ssl\u.py”,
第329行,在ssl\u-wrap\u套接字中
返回context.wrap\u套接字(sock,server\u hostname=server\u hostname)文件
“C:\Users\user\AppData\Local\Programs\Python35-32\lib\site packages\urllib3\contrib\pyopenssl.py”,
第448行,在wrap_插座中
raise ssl.SSLError('错误握手:%r'%e)ssl.SSLError:('错误握手:错误([('ssl例程'),
'tls_进程_服务器_证书','证书验证失败')],),)
在处理上述异常期间,发生了另一个异常:
回溯(最近一次调用上次):文件
“C:\Users\user\AppData\Local\Programs\Python35-32\lib\site packages\requests\adapters.py”,
第440行,发送
timeout=超时文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\urllib3\connectionpool.py”,
第639行,在urlopen中
_stacktrace=sys.exc_info()[2])文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\urllib3\util\retry.py”,
第388行,增量
引发MaxRetryError(_池、url、错误或响应错误(原因))urllib3.exceptions.MaxRetryError:
HTTPSConnectionPool(host='freshdesk.freshsales.io',port=443):最大值
已超过url的重试次数:
/api/sales\u accounts/100008286/conversations.json?include=email\u conversation\u recipients,all,targetable,phone\u number,phone\u calle,note,user
(由SSLError引起(SSLError(“错误的握手:错误[('SSL例程]),
“tls\u进程\u服务器\u证书”,“证书验证”
失败“)],),),),)
我尝试指定验证=False。仍然存在错误
C:\Users\user\AppData\Local\Programs\Python35-32\lib\site packages\urllib3\connectionpool.py:858:
不安全请求警告:正在发出未经验证的HTTPS请求。添加
强烈建议进行证书验证。见:
不安全请求警告)回溯(最近一次调用上次):文件
“C:\Users\user\AppData\Local\Programs\Python35-32\lib\site packages\urllib3\contrib\pyopenssl.py”,
第441行,在wrap_插座中
cnx.do\u handshake()文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\OpenSSL\SSL.py”,
第1716行,在do_握手中
self.\u raise\u ssl\u error(self.\u ssl,result)文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\OpenSSL\ssl.py”,
第1456行,in_raise_ssl_错误
_提出当前错误()文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\OpenSSL\u util.py”,
第54行,来自错误队列的异常
引发异常类型(错误)OpenSSL.SSL.Error:[(“SSL例程”、“tls\u进程\u服务器\u证书”、“证书验证
失败“)]
在处理上述异常期间,发生了另一个异常:
回溯(最近一次调用上次):文件
“C:\Users\user\AppData\Local\Programs\Python35-32\lib\site packages\urllib3\connectionpool.py”,
第601行,在urlopen中
chunked=chunked)文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\urllib3\connectionpool.py”,
第346行,输入请求
self.\u validate\u conn(conn)文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\urllib3\connectionpool.py”,
线路850,在连接处
conn.connect()文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\urllib3\connection.py”,
第326行,连接中
ssl\u context=context)文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\urllib3\util\ssl\u.py”,
第329行,在ssl\u-wrap\u套接字中
返回context.wrap\u套接字(sock,server\u hostname=server\u hostname)文件
“C:\Users\user\AppData\Local\Programs\Python35-32\lib\site packages\urllib3\contrib\pyopenssl.py”,
第448行,在wrap_插座中
raise ssl.SSLError('错误握手:%r'%e)ssl.SSLError:('错误握手:错误([('ssl例程'),
'tls_进程_服务器_证书','证书验证失败')],),)
有什么办法可以避免这个错误吗?我浏览了这里的各种问题,但找不到解决办法。URL管理员还确认服务器证书是有效的,所以我觉得这肯定与一些冲突的软件包安装有关
以下是我的pip冻结包列表:
C:\Users\user\python>pip freeze
asn1crypto==0.23.0
attrs==16.3.0
Automat==0.5.0
beautifulsoup4==4.5.3
bleach==1.5.0
bs4==0.0.1
certifi==2017.7.27.1
cffi==1.11.2
chardet==3.0.4
chargebee==2.1.8
colorama==0.3.7
constantly==15.1.0
cryptography==2.1.1
cssselect==1.0.1
decorator==4.0.11
entrypoints==0.2.2
html5lib==0.9999999
idna==2.6
incremental==16.10.1
ipykernel==4.5.2
ipython==5.3.0
ipython-genutils==0.1.0
ipywidgets==5.2.2
Jinja2==2.9.5
jsonschema==2.6.0
jupyter==1.0.0
jupyter-client==5.0.0
jupyter-console==5.1.0
jupyter-core==4.3.0
lxml==3.7.3
MarkupSafe==0.23
mistune==0.7.3
nbconvert==5.1.1
nbformat==4.3.0
notebook==4.4.1
numpy==1.12.0
pandas==0.19.2
pandocfilters==1.4.1
parsel==1.1.0
pickleshare==0.7.4
prompt-toolkit==1.0.13
pyasn1==0.2.3
pyasn1-modules==0.0.8
pycparser==2.18
PyDispatcher==2.0.5
Pygments==2.2.0
PyJWT==1.5.0
pyOpenSSL==17.3.0
PySocks==1.6.7
python-dateutil==2.6.0
pytz==2016.10
pyzmq==16.0.2
qtconsole==4.2.1
queuelib==1.4.2
requests==2.18.4
selenium==3.0.2
service-identity==16.0.0
simplegeneric==0.8.1
six==1.11.0
testpath==0.3
tornado==4.4.2
traitlets==4.3.2
twilio==6.0.0
urllib3==1.22
w3lib==1.17.0
wcwidth==0.1.7
widgetsnbextension==1.2.6
win-unicode-console==0.5
zope.interface==4.3.3
最终发现这是一个网络问题。和我公司的IT团队讨论了这个问题,他们通过做一些IP白名单解决了这个问题