HTTPSConnectionPool: Max retries exceeded with URL (Caused b



我正在尝试使用Python请求库和证书库向URL发出HTTPS请求,如下所示:

import certifi
url = 'https://10.0.0.39:4455/api/cars'
response = requests.get(url, verify=certifi.where())
if response.status_code == 200:
print(response.json())
else:
print(f'Request failed with status code {response.status_code}: {response.text}')

但是,我一直得到以下错误信息:

"requests.exceptions.SSLError: HTTPSConnectionPool(host='https://10.0.0.39/api/cars', port=4455): 
Max retries exceeded with url: /api/cars (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),))"

我已经导入了certifi模块来验证SSL/TLS证书。我还使用pip安装了证书模块。然而,我仍然得到这个错误信息。如何解决这个问题?另外,flask API在我的另一台计算机(10.0.0.39)上运行,并且有一个激活的SSL证书。

如果您在requests.get()调用中添加了verify=False,并且错误消失了,则很可能是服务器颁发的SSL证书在您的客户机上不受信任。为了解决这个问题,您可以在API端使用来自公认证书颁发机构的受信任证书,也可以将来自API的证书颁发机构添加到客户端。如果错误仍然存在,请尝试使用以下命令更新您的证书库

pip install --upgrade certifi如果旧版本python3

python -m pip install --upgrade certifi如果python3的新版本

这将确保您的客户端拥有最新版本的库,其中包括一组可用于验证SSL证书的受信任根证书。

最新更新