当前位置: 首页 > 知识库问答 >
问题:

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

卢知
2023-03-14

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\Python 35-32\lib\site packages\urlib3\connectionpool.py”,urlopen chunked=chunked中的第601行)文件“C:\Users\user\AppData\Local\Programs\Python\Python 35-32\lib\site packages\urlib3\connectionpool.py”,第346行,在“发出请求”_验证连接(conn)文件“C:\Users\user\AppData\Local\Programs\Python 35-32\lib\site packages\urlib3\connectionpool.py”,第850行,在验证连接(conn)连接()文件“C:\Users\user\AppData\Local\Programs\Python 35-32\lib\site packages\urlib3\connection.py”第326行,在连接ssl\u context=context)文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\urllib3\util\ssl\uu.py”中,第329行,在ssl\u wrap\u套接字返回上下文中。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\U进程\U服务器\U证书','certificate verify failed'),),)

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

回溯(最近一次调用):文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\requests\adapters.py”,第440行,在发送超时=超时文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\urllib3\connectionpool.py”中,urlopen\u stacktrace=sys第639行。exc_info()。例外情况。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证书','certificate verify failed'),),)引起)

我试图通过指定验证=假。还是有误差

C:\Users\user\AppData\Local\Programs\Python35-32\lib\site packages\urllib3\connectionpool。py:858:不安全请求警告:正在发出未验证的HTTPS请求。强烈建议添加证书验证。见:https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-警告不安全请求警告)回溯(最近一次调用上次):文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\urlib3\contrib\pyopenssl.py”,第441行,在wrap\u套接字cnx中。do_handshake()文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\OpenSSL\SSL.py”,第1716行,在do_handshake self中_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行,在“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\OpenSSL\ssl.py”文件“C:\Users\user\AppData\Local\Programs\Python35-32\lib\site packages\OpenSSL\util,在来自错误队列的异常中引发异常类型(错误)OpenSSL。SSL。错误:[('SSL例程','tls\进程\服务器\证书','证书验证失败')]

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

回溯(最后一次调用):文件“C:\Users\user\AppData\Local\Programs\Python\Python 35-32\lib\site packages\urlib3\connectionpool.py”,urlopen chunked=chunked中的第601行)文件“C:\Users\user\AppData\Local\Programs\Python\Python 35-32\lib\site packages\urlib3\connectionpool.py”,第346行,在“发出请求”_验证连接(conn)文件“C:\Users\user\AppData\Local\Programs\Python 35-32\lib\site packages\urlib3\connectionpool.py”,第850行,在验证连接(conn)连接()文件“C:\Users\user\AppData\Local\Programs\Python 35-32\lib\site packages\urlib3\connection.py”第326行,在连接ssl\u context=context)文件“C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site packages\urllib3\util\ssl\uu.py”中,第329行,在ssl\u wrap\u套接字返回上下文中。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\U进程\U服务器\U证书','certificate verify failed'),),)

有什么办法可以避免这个错误吗?我浏览了这里的各种问题,但找不到解决办法。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

共有1个答案

公西运良
2023-03-14

最终发现这是一个网络问题。和我公司的IT团队讨论了这个问题,他们通过做一些IP白名单解决了这个问题。

 类似资料:
  • 问题内容: 这段代码 给我这个错误 我对SSL几乎一无所知,但我曾尝试下载该站点的证书并使用该选项指向该文件,但是它没有用。我想念什么吗? 问题答案: 正如评论中已经指出的那样:从SSLLabs报告中可以看出,该网站的SSL实施不正确。该报告中有关您的问题的主要部分是: 该服务器的证书链不完整。等级上限为B。 这意味着服务器没有发送验证证书所需的完整证书链。这意味着您需要在验证时自行添加丢失的证书

  • 我正在向一个需要SSL证书才能访问的站点发出请求。当我试图访问URL时,我得到SSL证书错误 文件“C:\program files\python37-32\lib\site-packages\requests\sessions.py”,第533行,在request resp=self.send(prep,**send_kwargs)文件“C:\program files\python37-32\

  • 问题内容: 说我想以编程方式获取。目前,golang.org(ssl)的证书不正确,因此我将其签发给So: 我得到了(如我所料) 现在,我想自己信任该证书(想象一个可以颁发指纹的自我发行的证书,等等):如何提出请求并验证/信任该证书? 我可能需要使用openssl下载证书,将其加载到我的文件中并填充struct!?。 问题答案: 安全说明:禁用安全检查是危险的,应避免 您可以全局禁用默认客户端的所

  • 问题内容: 我正在尝试根据此帖子更新SSL证书 。 我没有证书,因此我遵循了本指南。但是,当我进入 我得到错误: 我该如何解决? 问题答案: 您的cacerts.pem文件是否包含一个证书?由于它是PEM,因此请先看一下 并以 最后,要检查它是否未损坏,请使用openssl并使用来打印其详细信息