Windows10下访问api.loganalytics.io遇本地颁发者证书验证失败求助
问题解答
报错中所指的证书类型
报错里提到的是本地信任存储中的CA颁发者证书(包含根证书和中间证书)。目标服务器的SSL证书本身有效,但你的Python环境或Windows系统的信任根存储中,缺少用来验证该服务器证书链的对应CA证书,导致无法完成信任链的验证流程。
解决步骤(Windows 10系统)
方法1:更新Python环境的certifi证书库
certifi是requests默认依赖的证书管理库,负责提供信任的CA证书集合:
- 首先查看certifi的证书文件路径:
会输出类似import certifi print(certifi.where())C:\...\virtualenvs\pythonProject-XaZ9hdp4\lib\site-packages\certifi\cacert.pem的路径。 - 升级certifi到最新版本:
pip install --upgrade certifi - 如果升级后仍报错,手动添加缺失的CA证书:
- 用浏览器打开
https://api.loganalytics.io,点击地址栏的锁图标→「证书」→「详情」→「复制到文件」,选择「Base64编码的X.509(.CER)」格式,保存证书文件。 - 打开上述步骤得到的
cacert.pem文件,将保存的CER文件内容复制粘贴到文件末尾,保存后重启Python项目。
- 用浏览器打开
方法2:更新Windows系统的信任根证书
如果Python环境依赖系统的信任存储,可以直接将证书安装到系统:
- 导出证书:同方法1的步骤,导出Base64编码的CER文件。
- 安装证书:右键点击CER文件→「安装证书」→选择「本地计算机」→下一步→选择「将所有证书放入下列存储」→浏览→选择「受信任的根证书颁发机构」→完成,按提示确认安装。
- 确保Windows系统根证书是最新的:打开「设置」→「更新和安全」→「Windows更新」→检查并安装所有可选更新(包括根证书更新)。
方法3:让requests使用系统证书存储
如果希望requests直接调用Windows系统的信任证书,可以借助certifi_win32库:
- 安装库:
pip install certifi_win32 - 修改代码:
import requests import certifi_win32 resp = requests.get( 'https://api.loganalytics.io', verify=certifi_win32.wincertstore.where() )
额外排查点
- 检查是否有代理、防火墙或安全软件替换了SSL证书:这类工具会生成自签名证书,需要将其证书也添加到信任存储中。
内容的提问来源于stack exchange,提问作者Diggy
相关产品推荐
相关产品推荐

