康达 SSL 错误

Conda SSL error

我在让 conda 遵守我的代理声明时遇到了一些问题。我已经从 conda 文档中的示例中复制了代理字符串,并将 url 替换为我自己的。我还使用我知道有效的字符串导出了 HTTP_PROXY 和 HTTPS_PROXY。我的 ~/.condarc 文件看起来像:

proxy_servers:
    http: http://<proxyaddress>:<port>
    https: https://<proxyaddress>:<port>

有什么建议吗?

编辑: 畅达版本:3.14.1

看起来代理字符串实际上没问题。最初没有出现的真正问题是,由于我们的公司代理,conda 没有使用我需要的 ca-cert。当我尝试安装软件包时出现的具体错误是:

Error: Connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581): ...

我想通了所以我想我会回来报告。

我不确定如何让 conda 使用特定的证书,但 conda 将请求用于它的 Web 请求。您可以通过设置环境变量 REQUESTS_CA_BUNDLE.

将证书包注入到请求的路径中

所以我运行:

export REQUESTS_CA_BUNDLE=/usr/local/share/ca-certificates/<my-cert-name>

现在conda可以通过我们的代理了!

conda config --set ssl_verify false

我在 Mac OS X 和 Miniconda 上遇到了同样的问题。在尝试了许多建议的解决方案数小时后,我 发现我需要正确设置 Condas 环境(特别是 requests conda 用于建立 HTTPS 连接的环境)以使用我公司提供的根证书 而不是 Conda 提供的通用的。

在这里扩展@LISTERINE 的回答是我如何解决它的:

  1. 打开Chrome,进入任意网站,点击URL左边的锁图标。单击下拉列表中的“证书”。在接下来的 window 中,您会看到一堆证书。最上面的(也就是window中的顶行)是根证书(例如,在我的例子中是Zscaler Root CA,你的很可能是不同的)。

  1. 打开 Mac OS 钥匙串,单击“证书”并在众多证书中选择您刚刚确定的 根证书 。将其导出到您选择的任何文件夹。
  2. 使用 openssl 转换此证书:openssl x509 -inform der -in /path/to/your/certificate.cer -out /path/to/converted/certificate.pem
  3. 为了快速检查 设置您的 shell 以确认证书:export REQUESTS_CA_BUNDLE=/path/to/converted/certificate.pem
  4. 永久设置,请打开您的 shell 配置文件(.bshrs 或例如 .zshrc)并添加此行:export REQUESTS_CA_BUNDLE=/path/to/converted/certificate.pem. 现在退出 terminal/shell 并重新打开。再检查一遍。

您应该已准备就绪,Conda 应该可以正常工作。

它对我有用,通过如下编辑 .condarc 文件。

channels:
    - defaults
#ssl_verify: C:\Users\ravikumk\certs\ca.crt

ssl_verify: false

# Show channel URLs when displaying what is going to be downloaded and
# in 'conda list'. The default is False.
show_channel_urls: True
allow_other_channels: True