gpt4 book ai didi

Python 请求抛出 SSLError

转载 作者:太空宇宙 更新时间:2023-11-03 13:31:57 26 4
gpt4 key购买 nike

我正在编写一个涉及 CAS、jspring 安全检查、重定向等的简单脚本。我想使用 Kenneth Reitz 的 python 请求,因为它很棒!但是,CAS 需要通过 SSL 进行验证,所以我必须先通过这一步。我不知道 Python 请求想要什么?这个 SSL 证书应该存放在哪里?

Traceback (most recent call last):
File "./test.py", line 24, in <module>
response = requests.get(url1, headers=headers)
File "build/bdist.linux-x86_64/egg/requests/api.py", line 52, in get
File "build/bdist.linux-x86_64/egg/requests/api.py", line 40, in request
File "build/bdist.linux-x86_64/egg/requests/sessions.py", line 209, in request
File "build/bdist.linux-x86_64/egg/requests/models.py", line 624, in send
File "build/bdist.linux-x86_64/egg/requests/models.py", line 300, in _build_response
File "build/bdist.linux-x86_64/egg/requests/models.py", line 611, in send
requests.exceptions.SSLError: [Errno 1] _ssl.c:503: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

最佳答案

您遇到的问题是由不受信任的 SSL 证书引起的。

就像@dirk 在之前的评论中提到的那样,最快 修复是设置 verify=False:

requests.get('https://example.com', verify=False)

请注意,这将导致证书无法验证。 这会使您的应用程序面临安全风险,例如中间人攻击。

当然,应用判断。如评论中所述,这可能对于快速/一次性应用程序/脚本是可以接受的,但实际上不应该用于生产软件

如果只是跳过证书检查在您的特定上下文中是 Not Acceptable ,请考虑以下选项,您最好的选择是将 verify 参数设置为一个字符串,该字符串是 的路径.pem 证书文件(您应该通过某种安全方式获得)。

因此,从 2.0 版开始,verify 参数接受以下值及其各自的语义:

  • True:使证书根据库自己的受信任证书颁发机构进行验证(注意:您可以通过 Certifi 库查看请求使用的根证书,这是从请求中提取的 RC 的信任数据库:Certifi - Trust Database for Humans ).
  • False:完全绕过证书验证。
  • 请求用于验证证书的 CA_BUNDLE 文件的路径。

来源:Requests - SSL Cert Verification

另请查看同一链接上的 cert 参数。

关于Python 请求抛出 SSLError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51481545/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com