【问题标题】:Installing Zscaler Certificate to Anaconda3将 Zscaler 证书安装到 Anaconda3
【发布时间】:2020-05-06 12:40:45
【问题描述】:

在公司强制安装 Zscaler 后,我的 Anaconda 在安装模块和使用请求获取 url 时开始给我 SSL 验证错误

Error(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1076)'))': /simple/'some_module'/

SSLError: HTTPSConnectionPool(host='www.amazon.com', port=443): url: / (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', ' tls_process_server_certificate', '证书验证失败')])")))

关闭 Zscaler 后一切正常,但公司政策不允许这样做.....

我发现了一些绕过方法,例如将 verify 设置为 False,但这不是我想要的。

我想将 Zscaler 证书(由我们的 IT 部门提供给我)安装到 Anaconda

现在问题似乎是它使用了 conda 的通用证书。

import ssl
print(ssl.get_default_verify_paths())

输出: DefaultVerifyPaths(cafile=None, capath=None, openssl_cafile_env='SSL_CERT_FILE', openssl_cafile='C:\ci\openssl_1581353098519\_h_env\Library/cert.pem', openssl_capath_env='SSL_CERT_DIR', openssl_capath='C:\ci\openssl_158139309851 \_h_env\Library/certs')

知道我可以做些什么来将 conda 指向我拥有的 Zscaler 证书吗??

系统信息:Windows 10、Anaconda3 -2020.02、Python 3.7

提前非常感谢

【问题讨论】:

标签: ssl anaconda ssl-certificate zscaler


【解决方案1】:

你可以做的是:

  1. 打开浏览器并转到www.google.com
  2. 在重新加载页面按钮旁边,您会看到一个锁(见下图)。点击它
  3. 点击:证书
  4. 点击标签:认证路径
  5. 选择 Zsclaer Root CA5 并点击查看证书按钮
  6. 单击选项卡:详细信息,然后单击复制到文件按钮
  7. 导出选择 base-64 编码的 X.509 (.CER) 的证书
  8. 选择保存文件的路径
  9. 打开 Anaconda 提示
  10. conda config -set ssl_verify path_of_the_file_that_you_just_saved

【讨论】:

  • 我认为conda config 的参数是--set 而不是-set
【解决方案2】:

背景

我遇到了同样的问题,但在我的工作笔记本电脑上遇到了类似的问题,除了 Zscaler 阻止了我的 curl、git 和 anaconda 流量。临时修复是禁用 ssl 验证,但这会引入许多安全漏洞,例如中间人攻击。

根据我收集到的信息和有限的研究,WSL2 没有自动从系统导入 ssl 证书的方法。 https://github.com/microsoft/WSL/issues/5134

解决方案

长期解决方案是获取 Zscaler 证书并将其添加到您的 shell 文件中。获取证书并导航到目录后,在 WSL 中运行以下命令。

echo "export SSL_CERT_FILE=<Path to Certificate>/ZscalerRootCA.pem" >> $HOME/.bashrc

我从中得到的 https://help.zscaler.com/zia/adding-custom-certificate-application-specific-trusted-store#curl-SSL_CERT_FILE 他们有更多用于其他应用程序的命令

如果您使用任何其他 shell,请确保将 .bashrc 更改为该文件的配置目录。就我而言,我使用的是鱼,所以我将 $HOME/.bashrc 替换为 $HOME/.config/fish/config.fish

echo "export SSL_CERT_FILE=<Path to Certificate>/ZscalerRootCA.pem" >> $HOME/.config/fish/config.fish

添加证书后,请务必重新加载 shell。就我而言,我使用来自jeffmcneil的指令运行

source ~/.config/fish/config.fish

对于 bash,你会想要运行 source ~/.bashrc

. ~/.bashrc

来自 https://stackoverflow.com/a/2518150/16150356

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2017-05-04
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多