SSL: CERTIFICATE_VERIFY_FAILED Error in Python 是什么问题?

打印 上一主题 下一主题

主题 862|帖子 862|积分 2586


在最新版本的Stable Diffusion webui 版本上利用最新下载的模型时,出现了类似的错误。
  SSL: CERTIFICATE_VERIFY_FAILED 错误在Python中通常表示你的步伐试图通过HTTPS连接到某个服务器,但Python无法验证该服务器提供的SSL证书。这大概是由于以下几种原因之一:

  • 系统缺少CA证书:这是最常见的原因,特殊是在某些操作系统(如macOS)上,默认安装的Python版本大概没有包含最新的或任何的CA证书包。你可以通过安装certifi库来办理这个问题,它提供了一个最新的CA证书聚集。
  • 自签名证书或不受信托的证书:如果你正在尝试连接的服务利用的是自签名证书或者是从一个不受信托的CA签发的证书,Python默认会拒绝建立连接。
  • 网络问题:有时,中间人攻击或者网络配置问题也大概导致这个错误。比方,某些公司网络大概会进行SSL拦截,这会导致证书验证失败。
办理方案



  • 如果问题是由于缺少CA证书引起的,可以通过安装certifi并确保你的Python环境精确地利用这些证书来办理。运行pip install certifi安装包。
    在代码中,你也可以明确指定利用certifi提供的证书:
    1. import ssl
    2. import certifi
    3. context = ssl.create_default_context(cafile=certifi.where())
    4. # 然后将这个context用于你的HTTPS连接
    复制代码
  • 如果你须要与利用自签名证书的服务器通信,可以在创建请求时忽略证书验证(不推荐在生产环境中这样做,由于这会使你的连接轻易受到中间人攻击):
    1. import urllib.request
    2. # 忽略证书验证
    3. ctx = ssl.create_default_context()
    4. ctx.check_hostname = False
    5. ctx.verify_mode = ssl.CERT_NONE
    6. response = urllib.request.urlopen('https://your-url.com', context=ctx)
    复制代码
  • 对于企业级应用,如果碰到SSL拦截的问题,大概须要接洽IT部门获取精确的CA证书,并将其添加到你的系统或Python环境的信托存储中。
确保根据你的具体情况选择合适的办理方案。如果不确定具体原因,可以逐步排查上述大概性。
在办理这个问题上猜测是MACOS版本的Python3.10中缺少了部门认证
通过进入Stable Diffusion的虚拟环境中进行安装
  1. source ./venv/bin/active
  2. pip install certify
复制代码
有的时候存在无法安装
  1. ERROR: Could not find a version that satisfies the requirement certify (from versions: none)
复制代码
这种情况下接纳以下方式
  1. /Applications/Python\ 3.10/Install\ Certificates.command
复制代码
运行命令后,重启Stable Diffusion ,再次利用新模型,问题办理。
/Applications/Python 3.10/Install Certificates.command 是一个针对macOS用户的脚本,主要用于安装或更新Python 3.10发行版中的SSL证书。这个脚本特殊有用,由于在某些操作系统上(尤其是macOS),默认情况下大概缺少须要的CA证书来验证HTTPS连接的SSL证书,这会导致如SSL: CERTIFICATE_VERIFY_FAILED这样的错误。
这个脚本的作用



  • 安装证书:它会主动安装最新的CA证书到你的Python环境中,使得你可以通过HTTPS安全地访问外部资源。
  • 办理常见问题:主要是为了办理由于缺少CA证书而导致的SSL证书验证失败的问题。
###手动怎样运行

  • 找到脚本:在Finder中打开“应用步伐”文件夹,然后进入“Python 3.10”文件夹。你会看到名为Install Certificates.command的文件。
  • 运行脚本

    • 可以直接双击该脚本运行。
    • 或者,在终端中执行以下命令来手动运行它:
      1. /Applications/Python\ 3.10/Install\ Certificates.command
      复制代码
      注意这里的反斜杠 \ 是用来转义空格的,确保路径精确无误。

脚本内容剖析

固然你不须要修改这个脚本,但了解它的根本功能是有资助的。通常,这个脚本会:


  • 利用certifi库来获取最新的一组可信的CA证书。
  • 将这些证书配置给你的Python环境,以便所有利用标准库http.client和urllib.request等进行HTTPS请求时都能精确验证SSL证书。
运行这个脚本是办理由于缺少得当CA证书导致的SSL验证问题的一种简单方法。对于利用Python进行网络编程、数据抓取或其他须要HTTPS连接操作的人来说,这是一个非常有用的工具。如果你已经碰到了SSL: CERTIFICATE_VERIFY_FAILED错误,尝试运行这个脚原来办理问题是一个不错的起点。如果问题仍然存在,大概须要进一步检查你的网络设置或接洽系统管理员。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

瑞星

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表