通过python执行请求时发生SSL证书错误

2024-05-03 07:14:46 发布

您现在位置:Python中文网/ 问答频道 /正文

Iam正在尝试对HTTPS url进行API调用:

response = requests.request("GET", url, headers=headers, params=None, verify=True)

我面临以下错误。当我通过cUrl或Postman调用API时,它工作得很好。。。在

Traceback (most recent call last): File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\urllib3\connectionpool.py", line 601, in urlopen chunked=chunked) File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\urllib3\connectionpool.py", line 346, in _make_request self._validate_conn(conn) File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\urllib3\connectionpool.py", line 850, in _validate_conn conn.connect() File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\urllib3\connection.py", line 326, in connect ssl_context=context) File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\urllib3\util\ssl_.py", line 329, in ssl_wrap_socket return context.wrap_socket(sock, server_hostname=server_hostname) File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\urllib3\contrib\pyopenssl.py", line 448, in wrap_socket raise ssl.SSLError('bad handshake: %r' % e) ssl.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",)

在处理上述异常时,发生了另一个异常:

Traceback (most recent call last): File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\requests\adapters.py", line 440, in send timeout=timeout File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\urllib3\connectionpool.py", line 639, in urlopen _stacktrace=sys.exc_info()[2]) File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\urllib3\util\retry.py", line 388, in increment raise MaxRetryError(_pool, url, error or ResponseError(cause)) urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='freshdesk.freshsales.io', port=443): Max retries exceeded with url: /api/sales_accounts/1000080286/conversations.json?include=email_conversation_recipients,all,targetable,phone_numbe,phone_calle,note,user (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",),))

我试图指定verify=False,但仍然存在错误

C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\urllib3\connectionpool.py:858: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings InsecureRequestWarning) Traceback (most recent call last): File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\urllib3\contrib\pyopenssl.py", line 441, in wrap_socket cnx.do_handshake() File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\OpenSSL\SSL.py", line 1716, in do_handshake self._raise_ssl_error(self._ssl, result) File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\OpenSSL\SSL.py", line 1456, in _raise_ssl_error _raise_current_error() File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\OpenSSL_util.py", line 54, in exception_from_error_queue raise exception_type(errors) OpenSSL.SSL.Error: [('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')]

在处理上述异常时,发生了另一个异常:

Traceback (most recent call last): File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\urllib3\connectionpool.py", line 601, in urlopen chunked=chunked) File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\urllib3\connectionpool.py", line 346, in _make_request self._validate_conn(conn) File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\urllib3\connectionpool.py", line 850, in _validate_conn conn.connect() File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\urllib3\connection.py", line 326, in connect ssl_context=context) File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\urllib3\util\ssl_.py", line 329, in ssl_wrap_socket return context.wrap_socket(sock, server_hostname=server_hostname) File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\urllib3\contrib\pyopenssl.py", line 448, in wrap_socket raise ssl.SSLError('bad handshake: %r' % e) ssl.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",)

有什么办法可以避免这个错误吗?我浏览了这里的各种问题,但找不到解决办法。URL管理员还确认了服务器证书是有效的,所以我觉得这肯定与一些冲突的包安装有关。在

这是我的pip冻结包列表:

^{pr2}$

Tags: inpyssllibpackageslocallinesite
1条回答
网友
1楼 · 发布于 2024-05-03 07:14:46

最后发现是网络问题。我公司的IT团队把这个问题解决了,他们做了一些IP白名单。在

相关问题 更多 >