Python安装提示SSL证书错误的解决办法

作者:

文章目录
  • certifi 是一个 Python 包,它提供了最新的 Mozilla 受信任 CA 证书包。
  • 警告:这个方法会让你的 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证书验证问题解决方案
  • 目录
    • 一、更新系统 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/Ubuntusudo apt update && sudo apt install ca-certificates
        • CentOS/Fedora/RHELsudo yum update ca-certificatessudo 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证书错误”:

        1. 更新系统 CA 证书:执行 Install Certificates.command(macOS)或更新系统 CA 证书(Linux)。
        2. 使用 certifi 包提供的证书:安装 certifi 并配置 SSL context 使用 certifi 提供的证书。
        3. 最后手段(不推荐):完全禁用 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证书验证问题解决方案

        站内搜索