You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac下Python3.6+遇SSL证书验证失败,如何捕获错误并给出提示?

处理Mac上Python 3.6+的SSL证书验证失败错误

我之前在Mac上用Python 3.6+的时候也踩过这个SSL证书的坑,刚好能给你分享怎么在代码里优雅处理这个问题,给用户友好的提示!

问题背景

在Mac系统的Python 3.6及以上版本中,如果你还没运行过证书安装命令,几乎所有SSL相关操作(比如用requests发起HTTPS请求、urllib访问加密站点)都会失败,抛出SSL: CERTIFICATE_VERIFY_FAILED错误。这是因为Python 3.6+在Mac上默认没有预装系统根证书,必须手动触发安装才能让SSL验证正常工作。

代码实现:捕获错误并给出指引

你可以在代码里精准捕获这个特定的SSL错误,然后直接告诉用户怎么解决,不用让他们自己去搜半天。下面是示例代码:

import ssl
import requests

try:
    # 这里是你的SSL相关业务代码,比如发起HTTPS请求
    response = requests.get("https://example.com")
    response.raise_for_status()
    print("请求成功!")
except ssl.SSLCertVerificationError as e:
    if "CERTIFICATE_VERIFY_FAILED" in str(e):
        print("⚠️ 检测到SSL证书验证失败错误!")
        print("请按以下步骤解决:")
        print("1. 打开终端应用")
        print("2. 运行命令:`/Applications/Python\\ 3.6/Install\\ Certificates.command`")
        print("   (注意:把命令里的`3.6`换成你实际使用的Python版本号,比如Python 3.9就改成`Python\\ 3.9`)")
        print("3. 重新运行你的Python脚本")
    else:
        # 如果是其他类型的SSL错误,正常抛出让用户排查
        raise e
except Exception as e:
    # 处理其他非SSL相关的异常
    print(f"发生其他错误:{str(e)}")

额外说明

  • 运行那个终端命令后,Python会自动安装所需的根证书,之后所有SSL验证操作都会恢复正常
  • 如果你是通过Homebrew等渠道安装的Python,路径可能会不一样,但官方DMG安装的Python都能用上面的路径格式找到证书安装脚本

内容的提问来源于stack exchange,提问作者Mark Amery

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:40:15