通过python执行请求时出现SSL证书错误

编程入门 行业动态 更新时间:2024-10-27 06:22:06
本文介绍了通过python执行请求时出现SSL证书错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试对HTTPS网址进行API调用:

Iam trying to make an API call to a HTTPS url:

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

和Iam面临以下错误。当我通过cUrl或Postman调用API时,效果很好。

and Iam facing the following error. It works fine when i invoke the API via cUrl or Postman...

Traceback(最近一次调用为最后一次):File C:\ \用户\用户\AppData\本地\程序\Python\Python35-32\lib\站点软件包\urllib3\connectionpool.py,第601行,在urlopen chunked = chunked)文件 C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\urllib3\connectionpool.py ,行346,在_make_request self._validate_conn(conn)文件中, C:\Users\user\AppData\Local\Programs\Python\Python35-32\ lib\site-packages\urllib3\connectionpool.py,行850,在_validate_conn conn.connect()文件中, C:\Users\user\AppData\Local \程序\Python\Python35-32\lib\site-packages\urllib3\connection.py,行326,在connect ssl_context = context中)文件 C: \用户\用户\AppData\本地\程序\Python\Python35-32\库站点包\urllib3\util\ssl_.py,第329行,在ssl_wrap_socket 返回context.wrap_socket(sock,server_hostname = server_hostname)文件 C:\Users\user\AppData\Local\Programs\Python\Python35- 32\lib\site-packages\urllib3\contrib\pyopenssl.py,行448,在wrap_socket 中引发ssl.SSLError('握手不好:%r'%e) ssl.SSLError:(错误的握手:错误([[('SSL例程','tls_process_server_certificate','证书验证失败']],))),)

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')],)",)

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

During handling of the above exception, another exception occurred:

Traceback(最近一次调用为最后一次调用) ):文件 C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\requests\adapters.py ,行440,在发送 timeout = 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(_pool,url,error或ResponseError(cause))urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host ='freshdesk。 freshsales.io',端口= 443):URL超过最大次重试: /api/sales_accounts/1000080286/conversations.json?include=email_conversation_recipients,所有可定位,phone_numbe,phone_calle,注释,用户(由SSLError(SSLError(错误的握手:错误([(''SSL例程','tls_process_server_certificate','证书验证失败')],),),)) )

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 来尝试。仍然有错误

I tried by specifying verify=False .Still there is error

C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\ urllib3\connectionpool.py:858: InsecureRequest警告:未经验证的HTT PS请求正在发出。强烈建议添加证书验证。请参阅: https://urllib3.readthedocs。 io / zh-CN / latest / advanced-usage.html#ssl-warnings InsecureRequestWarning)追溯(最近一次通话为最后一次):文件 C:\Users\user\AppData 本地程序 Python Python35-32 lib站点包 urllib3 contrib pyopenssl.py,行441,位于wrap_socket cnx中。 do_handshake()文件 C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\OpenSSL\SSL.py,第1716行,在do_handshake self._raise_ssl_error(self._ssl,result)文件 C:\Users\user\AppData\Local\Programs\Python\Python35-32\ lib\site-packages\OpenSSL\SSL.py,行1456,在_raise_ssl_error _raise_current_error()文件中: C:\Users\user\AppData\Local\程序\Python\Python35-32\库\站点包\OpenSSL_util.py,第54行,exception_from_error_队列引发exception_type(errors)OpenSSL.SSL.Error:[('SSL例程','tls_process_server_certificate','证书验证失败')]

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: 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')]

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

During handling of the above exception, another exception occurred:

Traceback(最近一次调用为最后一次调用) ):文件 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,在_make_request self._validate_conn(conn)文件 C:\Users\user\AppData\Local\中程序\Python\Python35-32\lib\site-packages\urllib3\connectionpool.py,行850,在_validate_conn conn.connect()文件中, C:\ \用户\用户\AppData\本地\程序\Python\Python35-32\库\站点包\ur llib3\connection.py,行326,在connect ssl_context = context中)文件 C:\Users\user\AppData\Local\Programs\Python\Python35 -32\lib\site-packages\urllib3\util\ssl_.py,行329,在ssl_wrap_socket 中返回context.wrap_socket(sock,server_hostname = server_hostname)文件 C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\urllib3\contrib\pyopenssl.py,第448行,在wrap_socket 中引发ssl.SSLError('握手错误:%r'%e)ssl.SSLError:(握手失败:Error([('SSL例程',' tls_process_server_certificate','证书验证失败')])))))

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管理员还确认服务器证书有效,因此我认为这肯定与安装冲突的软件包有关。

Any ideas on how i can circumvent this error ? I Browsed through various questions here but could not find a solution for this. The URL administrator also confirmed that the server certificates are valid so i feel this has definitely got to do something with some conflicting package installation.

这是我的冻结软件包的清单:

Here's my pip freeze list of packages:

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白名单解决了该问题。

Finally figured out that it was a Network issue. Took this up with my company's IT team and they resolved it by doing some IP whitelisting.

更多推荐

通过python执行请求时出现SSL证书错误

本文发布于:2023-10-24 07:41:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1523340.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:证书   错误   python   SSL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!