Mac系统Python虚拟环境如何安装SSL证书解决requests SSLError问题
Mac Python3.9虚拟环境requests请求SSLError修复方案
故障原因
requests库默认依赖certifi包提供的CA根证书集完成SSL校验,虚拟环境未正确安装/更新根证书包时,就会对部分由小众CA、新签发CA签名的站点触发证书校验失败报错。
修复方案
方案1:更新根证书包(推荐)
- 先激活你使用的Python3.9虚拟环境,执行命令升级证书依赖:
pip install --upgrade certifi
- 若你是从python.org官网下载安装的Python3.9,还可执行官方自带的证书安装脚本完成系统级证书同步:
/Applications/Python\ 3.9/Install\ Certificates.command
- 若你是通过Homebrew安装的Python3.9,执行命令更新CA证书:
brew install ca-certificates
方案2:临时跳过SSL校验(仅适用于本地测试,禁止生产环境使用)
修改测试代码,显式关闭SSL校验,同时可关闭对应警告提示:
import requests import urllib3 # 关闭跳过SSL校验后的告警输出 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) url = "https://survey.unibz.it/opinio/s?s=12131" r = requests.get(url, verify=False) print(r)
方案3:手动指定证书路径
如果目标站点使用自签名证书,可手动导出站点的根证书到本地,请求时指定证书路径即可:
r = requests.get(url, verify="/本地/证书/存储路径/custom.crt")
内容的提问来源于stack exchange,提问作者ArtrenH
相关产品推荐
相关产品推荐

