文章目录
- Python 安装程序(特别是从 python.org 下载的版本)通常会包含一个脚本来安装 certifi 包提供的根证书。 找到 Python 应用程序文件夹:通常在 /Applications/Python 3.x/(版本号可能不同)。 执行安装证书的命令:在该文件夹中找到并双击执行 Install Certificates.command 脚本。 重新执行你的 Python 脚本:再次执行你的代码。
- 尝试更新系统的 CA 证书: Debian/Ubuntu:sudo apt update && sudo apt install ca-certificates CentOS/Fedora/RHEL:sudo yum update ca-certificates 或 sudo dnf update ca-certificates
- pip install –upgrade certifi
- 在你的 Python 脚本中,在 torch.hub.load 之前加入以下代码: import ssl import certifi import os # 设置 SSL 使用 certifi 提供的证书路径 os.environ[‘SSL_CERT_FILE’] = certifi.where() os.environ[‘REQUESTS_CA_BUNDLE’] = certifi.where() # 如果有使用 requests 库 # 尝试修改默认的 SSL context,让 urllib 使用 certifi try: ssl._create_default_https_context = lambda: ssl.create_default_context(cafile=certifi.where()) print(“已成功配置 SSL context 使用 certifi。”) except Exception as e: print(f”使用 certifi 配置 SSL context 时出错: {e}”) print(“将回退到可能未经验证的 context(安全性较低)。”)
目录
- 一、更新系统 CA 证书
- 1.macOS
- 2.Linux
- 二、使用certifi包提供的证书
- 1.安装certifi
- 2.修改 Python 脚本
- 三、完全禁用 SSL 验证(不推荐,有安全风险)
- 四、总结
在使用 Python 进行网络请求或安装第三方库时,你可能会遇到“SSL证书错误”。这通常是因为 Python 无法验证服务器的 SSL 证书,可能是由于本地证书配置不正确或缺失。以下是一些常见原因和解决方法:
Python 安装程序(特别是从 python.org 下载的版本)通常会包含一个脚本来安装 certifi 包提供的根证书。
- 找到 Python 应用程序文件夹:通常在
/Applications/Python 3.x/(版本号可能不同)。 - 执行安装证书的命令:在该文件夹中找到并双击执行
Install Certificates.command脚本。 - 重新执行你的 Python 脚本:再次执行你的代码。
尝试更新系统的 CA 证书:
- Debian/Ubuntu:
sudo apt update && sudo apt install ca-certificates - CentOS/Fedora/RHEL:
sudo yum update ca-certificates或sudo dnf update ca-certificates
certifi 是一个 Python 包,它提供了最新的 Mozilla 受信任 CA 证书包。
pip install --upgrade certifi
在你的 Python 脚本中,在 torch.hub.load 之前加入以下代码:
import ssl
import certifi
import os
# 设置 SSL 使用 certifi 提供的证书路径
os.environ['SSL_CERT_FILE'] = certifi.where()
os.environ['REQUESTS_CA_BUNDLE'] = certifi.where() # 如果有使用 requests 库
# 尝试修改默认的 SSL context,让 urllib 使用 certifi
try:
ssl._create_default_https_context = lambda: ssl.create_default_context(cafile=certifi.where())
print("已成功配置 SSL context 使用 certifi。")
except Exception as e:
print(f"使用 certifi 配置 SSL context 时出错: {e}")
print("将回退到可能未经验证的 context(安全性较低)。")
警告:这个方法会让你的 Python 程序在进行所有 HTTPS 连接时都不验证服务器证书,这会让你容易受到中间人攻击。只应在完全了解风险且无法使用前两种方法时,或在受信任的内部网络环境中临时使用。
在你的脚本开头(import torch 之前)加入以下代码:
import ssl
try:
_create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
pass
else:
ssl._create_default_https_context = _create_unverified_https_context
print("警告:已全局禁用 SSL 证书验证。这是不安全的。")
优先尝试以下方法解决“SSL证书错误”:
- 更新系统 CA 证书:执行 Install Certificates.command(macOS)或更新系统 CA 证书(Linux)。
- 使用 certifi 包提供的证书:安装 certifi 并配置 SSL context 使用 certifi 提供的证书。
- 最后手段(不推荐):完全禁用 SSL 验证,但务必了解其安全风险。
希望这些方法能帮助你解决 Python 安装时的“SSL证书错误”。如果问题仍然存在,建议检查网络环境或联系 Python 社区寻求帮助。
到此这篇关于Python安装提示“SSL证书错误”的解决办法的文章就介绍到这了,更多相关Python安装提示“SSL证书错误内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!
您可能感兴趣的文章:
- python安装包出现SSL证书验证失败的问题及解决方式
- Python中如何处理HTTPS请求和SSL证书验证详解
- Python如何获取域名的SSL证书信息和到期时间
- 使用python脚本检查ssl证书到期时间
- Python自动检测SSL证书是否过期的实现示例
- python获取域名ssl证书信息和到期时间
- Python实现检测SSL证书是否过期
- 基于python检查SSL证书到期情况代码实例
- Python SSL证书验证问题解决方案