在整个公司强制安装 Zscaler 后,我的 Anaconda 在安装模块和使用请求获取 url 时开始出现 SSL 验证错误
\n\n错误(SSLCertVerificationError(1, \'[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败: 无法获取本地颁发者证书 (_ssl.c:1076)\'))\': /simple/\'some_module\'/
\n\nSSLError: HTTPSConnectionPool(host=\'www.amazon.com\', port=443): url 超出最大重试次数: / (由 SSLError(SSLError("bad handshake: Error([(\'SSLroutines\', \'tls_process_server_certificate\',\'证书验证失败\')])")))
\n\n关闭 Zscaler 后,一切都很好,但公司政策不允许......
\n\n我发现了一些绕过方法,例如将 verify 设置为 False,但这不是我想要的。
\n\n我想将 Zscaler 证书(由我们的 IT 部门提供给我)安装到 Anaconda
\n\n现在问题似乎是它使用 conda\xe2\x80\x99s 通用证书。
\n\nimport ssl\nprint(ssl.get_default_verify_paths())\nRun Code Online (Sandbox Code Playgroud)\n\n输出:\nDefaultVerifyPaths(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_1581353098519\\_h_env\\Library/certs\')
\n\n知道我可以做什么来将 conda 指向我拥有的 Zscaler 证书吗?
\n\n系统信息:Windows 10、Anaconda3 -2020.02、Python 3.7
\n\n预先非常感谢
\n当我尝试抓取网站时,我遇到了 SSLError。
import requests
url = 'https://www.amazon.com/'
page = requests.get(url)
content=page.content
print(content)
Run Code Online (Sandbox Code Playgroud)
输出:~\Anaconda3\lib\site-packages\requests\adapters.py in send(self, request, stream, timeout, verify, cert, proxies) 429 except (_SSLError, _HTTPError) as e: 430 if isinstance(e, _SSLError): --> 431 raise SSLError(e, request=request) 432 elif isinstance(e, ReadTimeoutError): 433 raise ReadTimeout(e, request=request)
SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1076)
有一个有效的解决方法:
import requests
url = 'https://www.amazon.com/'
page = requests.get(url=url, verify =False)
content=page.content
print(content)
Run Code Online (Sandbox Code Playgroud)
但我很想用我的证书来解决这个问题!
我已经更新了包括请求在内的所有内容,重新安装了我的 Anaconda3,使用https://www.ssllabs.com检查了我的证书- 它们没问题。
系统信息:Windows 10,pip版本20.0.2,anaconda3,python 3.7
关于该死的 1076 错误具体指什么以及如何修复它有什么想法吗?
提前非常感谢