游乐游手机版
首页/AI热点日报/热点详情

SSL证书验证失败时如何修改Notebook代码连接API

类型:热点整理2026-08-18
Jupyter中HTTPS API SSL验证失败需先定位原因:证书链缺失、域名不匹配或已过期;推荐方案为升级certifi并设SSL_CERT_FILE环境变量,或追加证书到certifi路径,禁用验证仅限本地调试。在Jupyter Notebook中调用HTTPS API时提示SSL证书验证失败

Jupyter中HTTPS API SSL验证失败需先定位原因:证书链缺失、域名不匹配或已过期;推荐方案为升级certifi并设SSL_CERT_FILE环境变量,或追加证书到certifi路径,禁用验证仅限本地调试。

提示SSL证书验证失败怎么修改Notebook代码正常连接API

在Jupyter Notebook中调用HTTPS API时提示SSL证书验证失败,说明Python环境无法验证服务器返回的SSL证书链,常见于内网服务、自签名证书或系统证书库陈旧。必须定位具体原因再修改代码,不能盲目关闭验证。

先确认错误类型和来源

运行以下代码捕获完整错误信息:

import requests
try:
requests.get("https://your-api-domain.com", timeout=5)
except Exception as e:
print(type(e).__name__ + ":", e)

先盯住报错信息的最后几句,往往一眼就能定位问题出在哪儿:如果里面出现“unable to get local issuer certificate”,通常就是根证书或中间证书缺失;如果写着“hostname doesn't match”,那就表示域名和证书对不上;要是看到“certificate has expired”,情况也很直接,就是证书已经过期了。

方法一:临时跳过验证(仅限本地开发调试)

这一步操作起来很简单,直接在请求中加verify=False参数即可。

import requests
response = requests.get("https://your-api-domain.com", verify=False)

【警告】此操作会完全绕过TLS身份认证和数据完整性校验,生产环境绝对禁止使用。

为避免警告刷屏,可追加一行抑制输出:

import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

方法二:指定可信证书路径(推荐用于测试/内网环境)

第一步:获取当前certifi证书路径

import certifi
print(certifi.where())

第二步:将目标API的根证书或中间证书(.crt或.pem格式)内容追加到该文件末尾。用文本编辑器打开certifi路径下的cacert.pem,把新证书粘贴在文件最底部,保存。

第三步:在Notebook中显式使用该证书文件

import requests
response = requests.get("https://your-api-domain.com", verify=certifi.where())

如果证书是单独保存的(比如./my-ca-bundle.pem),就直接填绝对路径:
verify="/full/path/to/my-ca-bundle.pem"

方法三:强制Python加载最新证书(解决90%系统级证书陈旧问题)

① 升级certifi包:

!pip install --upgrade certifi --user

② 获取升级后证书路径:

import certifi
cert_path = certifi.where()
print("新证书路径:", cert_path)

③ 设置环境变量使Python全局生效(Notebook重启前必须执行):

import os
os.environ['SSL_CERT_FILE'] = cert_path

④ 验证是否生效:

import ssl
paths = ssl.get_default_verify_paths()
print("当前信任路径:", paths.openssl_cafile or paths.cafile)

若输出与cert_path一致,后续所有requests请求自动使用新证书,无需修改每处代码。

来源:https://www.php.cn/faq/2969244.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。