Conda 更新失败并出现 SSL 错误 CERTIFICATE_VERIFY_FAILED
Conda update fails with SSL error CERTIFICATE_VERIFY_FAILED
我对 conda update
有疑问。具体来说,我尝试做
conda update <package>
,我收到以下错误:
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
命令的完整输出如下:
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:
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:
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:
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:
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:
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:
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
请指教:我应该怎么做才能克服这个错误?
请注意以下解决方案不安全。参见:https://conda.io/projects/conda/en/latest/user-guide/configuration/disable-ssl-verification.html
根据@jreback 此处https://github.com/conda/conda/issues/1166
conda config --set ssl_verify false
将关闭此功能,例如here
这似乎对我有用:
conda remove certifi
conda install certifi
然后你可以做你之前想做的任何事情,例如
conda update --all
Conda 需要知道在哪里可以找到您的 SSL 证书存储。
conda config --set ssl_verify <pathToYourFile>.crt
无需禁用 SSL 验证。
此命令在 Windows 上的 $HOME/.condarc
文件或 %USERPROFILE%\.condarc
文件中添加一行,如下所示:
ssl_verify: <pathToYourFile>.crt
如果您离开组织的网络,您可以在 .condarc
中用 #
注释掉该行,然后在 return.
中取消注释
如果仍然无效,请确保您使用的是最新版本的 curl
,同时检查 conda-forge
和 anaconda
频道。
对于我们这些在公司网络上使用在中间 SSL 解决方案中实施可信人的 Web 过滤器的人来说,有必要将 Web 过滤器证书添加到证书中 cacert.pem.
执行此操作的指南是 here。
主要步骤是:
- 使用浏览器连接到 https 站点
- 查看并保存根证书
- 将证书转换为 .pem
- 复制并粘贴到现有 cacert.pem
的末尾
- 保存
- SSL 幸福
对于遇到此问题的每个人,您只需升级您的 openssl 安装。我是 运行 windows 10,安装了最新的 anaconda 64 位,当我尝试 install/upgrade 使用 'conda' 或 'pip' 的任何内容时出现此错误。如果我卸载 64 位 anaconda 并安装 32 位,它工作正常。
我为 windows 安装了 64 位版本的 openssl,版本 1.1.0 之类的。我卸载了它并安装了我可以从这里找到的最新版本:https://slproweb.com/products/Win32OpenSSL.html——那里有一个 1.1.1 的 64 位版本可以工作。现在我可以通过 pip 和 conda 成功安装包了。
希望这有帮助。
该 SSL 错误具有误导性。我正在使用 Anaconda 3,conda 版本 4.6.11,在 Windows 10 实例上安装了最新版本的 openssl。我通过将 Anaconda3 文件夹上的安全设置更改为完全控制来解决问题。
不要认为这有帮助,但我还修改了 ..\Anaconda3\Lib\site-packages\certifi\cacert.pem 文件以包含公司的 SSL 证书。
希望此信息对您有所帮助。
我在 Mac OS X 和 Miniconda 上遇到了同样的问题。在尝试了许多建议的解决方案数小时后,我 发现我需要正确设置 Condas 环境——特别是 requests 环境变量——以使用我公司提供的根证书 而不是Conda 提供的通用的。
我是这样解决的:
- 打开Chrome,进入任意网站,点击URL左边的锁图标。单击下拉列表中的“证书”。在接下来的 window 中,您会看到一堆证书。最上面的(也就是window中的顶行)是根证书(例如,在我的例子中是Zscaler Root CA,你的很可能是不同的)。
- 打开 Mac OS 钥匙串,单击“证书”并在众多证书中选择您刚刚确定的 根证书 。将其导出到您选择的任何文件夹。
- 使用 openssl 转换此证书:
openssl x509 -inform der -in /path/to/your/certificate.cer -out /path/to/converted/certificate.pem
- 为了快速检查 设置您的 shell 以确认证书:
export REQUESTS_CA_BUNDLE=/path/to/converted/certificate.pem
- 要永久设置,请打开您的 shell 配置文件(
.bshrs
或例如 .zshrc
)并添加此行:export REQUESTS_CA_BUNDLE=/path/to/converted/certificate.pem
. 现在退出 terminal/shell 并重新打开。再次检查。
您应该已准备就绪,Conda 应该可以正常工作。
经过 2 小时的网上冲浪终于对我来说,通过创建文件夹 pip 解决了问题,其中包含一个文件:pip.ini in C:\Users\AppData\Roaming\ 例如:
C:\Users\<username>\AppData\Roaming\pip\pip.ini
我在里面写道:
[global]
trusted-host = pypi.python.org
pypi.org
files.pythonhosted.org
我重新启动了 python,然后 pip 永久信任这些站点,并使用它们从中下载软件包。
如果您在 windows 上找不到 AppData 文件夹,请在文件资源管理器中写入 %appdata%,它应该会出现。
来源:pip install fails with "connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)"
以下对我有用: (MAC)
- 使用自制软件 install openssl1.1 certs
brew install openssl@1.1
- 将安装的证书添加到环境变量中:
export REQUESTS_CA_BUNDLE='/usr/local/etc/openssl@1.1/cert.pem'
- 要将你的环境变量持久化到anaconda,首先激活相关环境,然后执行:
conda env config vars set export REQUESTS_CA_BUNDLE='/usr/local/etc/openssl@1.1/cert.pem'
新发布者尚无法发表评论 - 但如果您拥有 non-default 受信任的 SSL 证书,例如在使用 ZScaler 等公司互联网监控软件时,这里有一个额外的选项和说明。
假设您有一个新的 trusted.pem
文件,您可能需要将此 trusted.pem
附加到证书的路径 python -m certifi
、AND,将这个串联的 .pem
文件设置为 REQUESTS_CA_BUNDLE 变量。
如果你只把REQUESTS_CA_BUNDLE设置成trusted.pem
可能不行。
已在 Windows 10 上测试。相关变量是 AWS_CA_BUNDLE、SSL_CERT_FILE 和 CURL_CA_BUNDLE,但这些变量仅需要设置为 trusted.pem
您的本地版本,而不是串联版本。
无论出于何种原因,在 Dockerfile 中,这些 ENV 变量需要是 串联的 .pem
文件(当然是在相关的 COPY 命令之后)
我对 conda update
有疑问。具体来说,我尝试做
conda update <package>
,我收到以下错误:
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
命令的完整输出如下:
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:
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:
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:
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:
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:
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:
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
请指教:我应该怎么做才能克服这个错误?
请注意以下解决方案不安全。参见:https://conda.io/projects/conda/en/latest/user-guide/configuration/disable-ssl-verification.html
根据@jreback 此处https://github.com/conda/conda/issues/1166
conda config --set ssl_verify false
将关闭此功能,例如here
这似乎对我有用:
conda remove certifi
conda install certifi
然后你可以做你之前想做的任何事情,例如
conda update --all
Conda 需要知道在哪里可以找到您的 SSL 证书存储。
conda config --set ssl_verify <pathToYourFile>.crt
无需禁用 SSL 验证。
此命令在 Windows 上的 $HOME/.condarc
文件或 %USERPROFILE%\.condarc
文件中添加一行,如下所示:
ssl_verify: <pathToYourFile>.crt
如果您离开组织的网络,您可以在 .condarc
中用 #
注释掉该行,然后在 return.
如果仍然无效,请确保您使用的是最新版本的 curl
,同时检查 conda-forge
和 anaconda
频道。
对于我们这些在公司网络上使用在中间 SSL 解决方案中实施可信人的 Web 过滤器的人来说,有必要将 Web 过滤器证书添加到证书中 cacert.pem.
执行此操作的指南是 here。
主要步骤是:
- 使用浏览器连接到 https 站点
- 查看并保存根证书
- 将证书转换为 .pem
- 复制并粘贴到现有 cacert.pem 的末尾
- 保存
- SSL 幸福
对于遇到此问题的每个人,您只需升级您的 openssl 安装。我是 运行 windows 10,安装了最新的 anaconda 64 位,当我尝试 install/upgrade 使用 'conda' 或 'pip' 的任何内容时出现此错误。如果我卸载 64 位 anaconda 并安装 32 位,它工作正常。 我为 windows 安装了 64 位版本的 openssl,版本 1.1.0 之类的。我卸载了它并安装了我可以从这里找到的最新版本:https://slproweb.com/products/Win32OpenSSL.html——那里有一个 1.1.1 的 64 位版本可以工作。现在我可以通过 pip 和 conda 成功安装包了。 希望这有帮助。
该 SSL 错误具有误导性。我正在使用 Anaconda 3,conda 版本 4.6.11,在 Windows 10 实例上安装了最新版本的 openssl。我通过将 Anaconda3 文件夹上的安全设置更改为完全控制来解决问题。 不要认为这有帮助,但我还修改了 ..\Anaconda3\Lib\site-packages\certifi\cacert.pem 文件以包含公司的 SSL 证书。
希望此信息对您有所帮助。
我在 Mac OS X 和 Miniconda 上遇到了同样的问题。在尝试了许多建议的解决方案数小时后,我 发现我需要正确设置 Condas 环境——特别是 requests 环境变量——以使用我公司提供的根证书 而不是Conda 提供的通用的。
我是这样解决的:
- 打开Chrome,进入任意网站,点击URL左边的锁图标。单击下拉列表中的“证书”。在接下来的 window 中,您会看到一堆证书。最上面的(也就是window中的顶行)是根证书(例如,在我的例子中是Zscaler Root CA,你的很可能是不同的)。
- 打开 Mac OS 钥匙串,单击“证书”并在众多证书中选择您刚刚确定的 根证书 。将其导出到您选择的任何文件夹。
- 使用 openssl 转换此证书:
openssl x509 -inform der -in /path/to/your/certificate.cer -out /path/to/converted/certificate.pem
- 为了快速检查 设置您的 shell 以确认证书:
export REQUESTS_CA_BUNDLE=/path/to/converted/certificate.pem
- 要永久设置,请打开您的 shell 配置文件(
.bshrs
或例如.zshrc
)并添加此行:export REQUESTS_CA_BUNDLE=/path/to/converted/certificate.pem
. 现在退出 terminal/shell 并重新打开。再次检查。
您应该已准备就绪,Conda 应该可以正常工作。
经过 2 小时的网上冲浪终于对我来说,通过创建文件夹 pip 解决了问题,其中包含一个文件:pip.ini in C:\Users
C:\Users\<username>\AppData\Roaming\pip\pip.ini
我在里面写道:
[global]
trusted-host = pypi.python.org
pypi.org
files.pythonhosted.org
我重新启动了 python,然后 pip 永久信任这些站点,并使用它们从中下载软件包。
如果您在 windows 上找不到 AppData 文件夹,请在文件资源管理器中写入 %appdata%,它应该会出现。
来源:pip install fails with "connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)"
以下对我有用: (MAC)
- 使用自制软件 install openssl1.1 certs
brew install openssl@1.1
- 将安装的证书添加到环境变量中:
export REQUESTS_CA_BUNDLE='/usr/local/etc/openssl@1.1/cert.pem'
- 要将你的环境变量持久化到anaconda,首先激活相关环境,然后执行:
conda env config vars set export REQUESTS_CA_BUNDLE='/usr/local/etc/openssl@1.1/cert.pem'
新发布者尚无法发表评论 - 但如果您拥有 non-default 受信任的 SSL 证书,例如在使用 ZScaler 等公司互联网监控软件时,这里有一个额外的选项和说明。
假设您有一个新的 trusted.pem
文件,您可能需要将此 trusted.pem
附加到证书的路径 python -m certifi
、AND,将这个串联的 .pem
文件设置为 REQUESTS_CA_BUNDLE 变量。
如果你只把REQUESTS_CA_BUNDLE设置成trusted.pem
可能不行。
已在 Windows 10 上测试。相关变量是 AWS_CA_BUNDLE、SSL_CERT_FILE 和 CURL_CA_BUNDLE,但这些变量仅需要设置为 trusted.pem
您的本地版本,而不是串联版本。
无论出于何种原因,在 Dockerfile 中,这些 ENV 变量需要是 串联的 .pem
文件(当然是在相关的 COPY 命令之后)