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

Mac Mojave系统Python3运行urllib请求报SSL证书验证错误如何解决?

Mac Mojave系统Python3 urllib SSL证书验证失败解决方案

这个报错是因为Mac平台从python.org官方下载安装的Python3默认不关联系统根证书,自带的证书库未安装或版本过时导致的,可按以下优先级选择解决方案:

方案1:运行Python官方自带证书安装脚本(最推荐,永久生效)

  • 打开访达,进入「应用程序」目录下对应你的Python3版本的文件夹,比如Python3.9对应文件夹名为Python 3.9,直接双击运行文件夹内的Install Certificates.command文件即可。
  • 也可以直接在终端执行对应命令,注意替换下方的版本号为你实际安装的Python3大版本:
/Applications/Python\ 3.9/Install\ Certificates.command

方案2:手动更新证书依赖包

如果方案1执行后仍然报错,执行以下命令升级certifi证书库:

pip3 install --upgrade certifi

如果你是通过Homebrew安装的Python3,额外执行以下命令重装系统证书工具:

brew reinstall ca-certificates

方案3:临时关闭证书验证(仅调试用,禁止生产环境使用)

如果仅临时测试不需要验证证书,可以修改代码添加关闭SSL验证的逻辑,修改后代码如下:

import ssl
from urllib.request import Request, urlopen
from urllib.error import URLError, HTTPError

# 创建忽略证书验证的SSL上下文
ssl_ctx = ssl.create_default_context()
ssl_ctx.check_hostname = False
ssl_ctx.verify_mode = ssl.CERT_NONE

req = Request("https://cognito-idp.us-west-2.amazonaws.com/us-west-2_OnQppLqYQ/.well-known/jwks.json")
try:
    # 请求时传入自定义SSL上下文
    response = urlopen(req, context=ssl_ctx)
except HTTPError as e:
    print('Error code: ', e.code)
except URLError as e:
    print('Reason: ', e.reason)
else:
    print('good!')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:36:08