Conda更新失败:SSL错误:[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败

Conda update failed: SSL error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

我发现尝试进行时有问题

1
conda update <package>

终端输出

conda update bokeh Fetching package metadata: SSL verification error:
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
(_ssl.c:590) .SSL verification error: [SSL: CERTIFICATE_VERIFY_FAILED]
certificate verify failed (_ssl.c:590) .SSL verification error: [SSL:
CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) .SSL
verification error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate
verify failed (_ssl.c:590) . Solving package specifications: . Package
plan for installation in environment //anaconda:

The following packages will be downloaded:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package                    |            build
---------------------------|-----------------
decorator-4.0.2            |           py27_0          11 KB
ipython_genutils-0.1.0     |           py27_0          32 KB
path.py-8.1.1              |           py27_0          45 KB
pexpect-3.3                |           py27_0          60 KB
pickleshare-0.5            |           py27_0           8 KB
simplegeneric-0.8.1        |           py27_0           6 KB
traitlets-4.0.0            |           py27_0          88 KB
ipython-4.0.0              |           py27_0         916 KB
jinja2-2.8                 |           py27_0         263 KB
tornado-4.2.1              |           py27_0         515 KB
bokeh-0.9.3                |       np19py27_0        14.3 MB
------------------------------------------------------------
                                       Total:        16.2 MB

The following NEW packages will be INSTALLED:

1
2
3
4
5
6
ipython_genutils: 0.1.0-py27_0    
path.py:          8.1.1-py27_0    
pexpect:          3.3-py27_0      
pickleshare:      0.5-py27_0      
simplegeneric:    0.8.1-py27_0    
traitlets:        4.0.0-py27_0

The following packages will be UPDATED:

1
2
3
4
5
bokeh:            0.9.0-np19py27_0 --> 0.9.3-np19py27_0
decorator:        3.4.2-py27_0     --> 4.0.2-py27_0    
ipython:          3.2.0-py27_0     --> 4.0.0-py27_0    
jinja2:           2.7.3-py27_1     --> 2.8-py27_0      
tornado:          4.2-py27_0       --> 4.2.1-py27_0

Proceed ([y]/n)? y

Fetching packages ... Could not connect to
https://repo.continuum.io/pkgs/free/osx-64/decorator-4.0.2-py27_0.tar.bz2
Error: Connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate
verify failed (_ssl.c:590):
https://repo.continuum.io/pkgs/free/osx-64/decorator-4.0.2-py27_0.tar.bz2

dendisuhubdy:finalproject dendisuhubdy$ brew link --force openssl
Linking /usr/local/Cellar/openssl/1.0.2d_1... 1548 symlinks created
dendisuhubdy:finalproject dendisuhubdy$ conda update bokeh Fetching
package metadata: SSL verification error: [SSL:
CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) .SSL
verification error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate
verify failed (_ssl.c:590) .SSL verification error: [SSL:
CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) .SSL
verification error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate
verify failed (_ssl.c:590) . Solving package specifications: . Package
plan for installation in environment //anaconda:

The following packages will be downloaded:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package                    |            build
---------------------------|-----------------
decorator-4.0.2            |           py27_0          11 KB
ipython_genutils-0.1.0     |           py27_0          32 KB
path.py-8.1.1              |           py27_0          45 KB
pexpect-3.3                |           py27_0          60 KB
pickleshare-0.5            |           py27_0           8 KB
simplegeneric-0.8.1        |           py27_0           6 KB
traitlets-4.0.0            |           py27_0          88 KB
ipython-4.0.0              |           py27_0         916 KB
jinja2-2.8                 |           py27_0         263 KB
tornado-4.2.1              |           py27_0         515 KB
bokeh-0.9.3                |       np19py27_0        14.3 MB
------------------------------------------------------------
                                       Total:        16.2 MB

The following NEW packages will be INSTALLED:

1
2
3
4
5
6
ipython_genutils: 0.1.0-py27_0    
path.py:          8.1.1-py27_0    
pexpect:          3.3-py27_0      
pickleshare:      0.5-py27_0      
simplegeneric:    0.8.1-py27_0    
traitlets:        4.0.0-py27_0

The following packages will be UPDATED:

1
2
3
4
5
bokeh:            0.9.0-np19py27_0 --> 0.9.3-np19py27_0
decorator:        3.4.2-py27_0     --> 4.0.2-py27_0    
ipython:          3.2.0-py27_0     --> 4.0.0-py27_0    
jinja2:           2.7.3-py27_1     --> 2.8-py27_0      
tornado:          4.2-py27_0       --> 4.2.1-py27_0

Proceed ([y]/n)? y

Fetching packages ... Could not connect to
https://repo.continuum.io/pkgs/free/osx-64/decorator-4.0.2-py27_0.tar.bz2
Error: Connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate
verify failed (_ssl.c:590):
https://repo.continuum.io/pkgs/free/osx-64/decorator-4.0.2-py27_0.tar.bz2

请告知我该怎么做才能克服此消息!


根据@jreback在这里https://github.com/conda/conda/issues/1166

1
conda config --set ssl_verify false

将关闭此功能,例如这里


Conda需要知道在哪里可以找到SSL证书存储。

1
conda config --set ssl_verify <pathToYourFile>.crt

无需禁用SSL验证。

此命令在Windows的$HOME/.condarc文件或%USERPROFILE%\.condarc文件中添加一行,如下所示:

1
ssl_verify: <pathToYourFile>.crt

如果您退出组织的网络,则可以在.condarc中用#注释掉该行,并在返回时取消注释。

如果仍然无法使用,请确保您使用的是最新版本的curl,同时检查conda-forgeanaconda通道。


这似乎对我有用:

1
2
conda remove certifi
conda install certifi

然后,您可以做之前尝试做的任何事情,例如

1
conda update --all

我在Mac OS X和Miniconda上也遇到了同样的问题。在尝试了许多提议的解决方案数小时之后,我发现我需要正确设置Condas环境(特别是请求环境变量),以使用我公司提供的Root证书而不是Conda提供的通用证书。

这是我解决的方法:

  • 打开Chrome,进入任何网站,单击URL左侧的锁定图标。点击"证书"?在下拉菜单中。在下一个窗口中,您将看到一堆证书。最上面的(即视窗中的第一行)是根证书(例如,在我的情况下,是Zscaler Root CA,您的证书很可能会不同)。
  • enter image description here

  • 打开Mac OS钥匙串,单击"证书"。并从众多证书中选择您刚刚确定的根证书。将此导出到您选择的任何文件夹。
  • 使用openssl转换此证书:openssl x509 -inform der -in /path/to/your/certificate.cer -out /path/to/converted/certificate.pem
  • 要进行快速检查,请设置外壳以确认证书:export REQUESTS_CA_BUNDLE=/path/to/converted/certificate.pem
  • 要设置此设置,请永久打开您的外壳配置文件(.bshrs.zshrc)并添加以下行:export REQUESTS_CA_BUNDLE=/path/to/converted/certificate.pem。现在退出您的终端/外壳并重新打开。再检查一遍。
  • 您应该设置好,Conda应该可以正常工作。


    对于使用网络过滤器(在中间SSL解决方案中实施受信任的人)的公司网络中的我们而言,有必要将网络过滤器证书添加到certifi cacert.pem。

    这样做的指南在这里。

    主要步骤是:

  • 使用浏览器连接到https站点
  • 查看并保存根证书
  • 将证书转换为.pem
  • 复制并粘贴到现有cacert.pem的末尾
  • 保存
  • SSL幸福

  • 多亏了这里的答案以及SO中的其他六个问题,当您处于具有自签名证书颁发机构的公司代理的背后时,我就设置pip和conda(以及Git)撰写了广泛的答案

    如何在Windows中的Python使用的CA Store中添加自定义CA Root证书?


    对于每个在此问题上苦苦挣扎的人,您只需要升级openssl安装。我正在运行Windows 10,安装了最新的anaconda 64位,并在尝试使用" conda"或" pip"安装/升级任何内容时收到此错误。如果我卸载64位anaconda并安装32位,则可以正常工作。
    我为Windows安装了64位版本的openssl,版本1.1.0。我卸载了该文件,并安装了最新的文件,可以从这里找到:https://slproweb.com/products/Win32OpenSSL.html-可以使用的64位版本1.1.1。现在,我可以通过pip和conda成功安装软件包了。
    希望这可以帮助。


    该SSL错误具有误导性。我正在使用Anaconda 3,conda版本4.6.11,在Windows 10实例上具有最新版本的openssl。通过将Anaconda3文件夹上的安全设置更改为"完全控制",我解决了问题。
    认为这没有帮助,但我还修改了.. Anaconda3 Lib site-packages certifi cacert.pem文件以包含公司的SSL证书。

    希望此信息对您有所帮助。