Python 请求库问题:获取 SSL 证书验证失败错误

问题描述 投票:0回答:1

我目前正在开发一个 Python 脚本,该脚本利用 requests 库发出 API 请求。但是,我遇到了一个问题,即我始终收到“SSL 证书验证失败”错误。我尝试过在线搜索解决方案,但建议的修复似乎都不起作用。

这是我的代码的简化版本:

import requests

url = 'https://example.com/api'
response = requests.get(url)

print(response.text)

这是我遇到的错误消息:

requests.exceptions.SSLError:HTTPSConnectionPool(host ='example.com',port = 443):超过最大重试次数,网址:/ api(由SSLError(“错误握手:错误([('SSL例程','tls_process_server_certificate” ', '证书验证失败')])"))

我已经尝试升级 certifi 库,将 verify 参数设置为 False (我知道这不是推荐的解决方案),并检查系统时间。尽管做出了这些努力,问题仍然存在。

有人可以帮助我了解可能导致此 SSL 证书验证错误的原因并提出可靠的解决方案吗?任何见解或指导将不胜感激!

python ssl https request
1个回答
0
投票

请求模块的

verify=True
使用自己的 CA 集,该集可能没有 CA 签署您的服务器证书。

您需要找到系统 CA 文件的位置

然后将其添加为验证参数参数。

import requests

url = 'https://example.com/api'
response = requests.get(url, verify="pathToCAFile")

print(response.text)

或者,如果您只想修复警告而不修复根本问题,您可以使用 urllib 模块禁用它:

import requests
import urllib3
from urllib3.exceptions import InsecureRequestWarning
urllib3.disable_warnings(InsecureRequestWarning)

res = requests.get('https://example.com',verify=False)
© www.soinside.com 2019 - 2024. All rights reserved.