在 Sophos 防火墙后面使用带有证书的 Python Pip

在 Sophos 防火墙后面使用带有证书的 Python Pip

自从系统管理员开始在我的 Windows 本地系统和 Firefox 中使用安装了自定义 CA 的 Sophos XG 防火墙以来,我在工作场所使用 pip 时遇到了这个问题。我在任何客户端中都没有配置任何代理设置。

当我尝试某件事时,就会发生这种情况。

C:\Users\talha.ahmed>pip install objdict
Collecting objdict
  Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError
(<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x0000000003A3B4A8>, 'Connecti
on to 10.10.2.124 timed out. (connect timeout=15)')': /simple/objdict/
  Retrying (Retry(total=3, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError
(<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x0000000003A3B588>, 'Connecti
on to 10.10.2.124 timed out. (connect timeout=15)')': /simple/objdict/
  Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError
(<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x0000000003A3BC88>, 'Connecti
on to 10.10.2.124 timed out. (connect timeout=15)')': /simple/objdict/
  Retrying (Retry(total=1, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError
(<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x0000000003A3B780>, 'Connecti
on to 10.10.2.124 timed out. (connect timeout=15)')': /simple/objdict/
  Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError
(<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x0000000003A3BB38>, 'Connecti
on to 10.10.2.124 timed out. (connect timeout=15)')': /simple/objdict/
  Could not find a version that satisfies the requirement objdict (from versions: )
No matching distribution found for objdict

请注意,它说连接 10.10.2.124(不是网关/代理)超时,而不是 pypi.python.org,后者可能是某种本地服务器或调制解调器等。

但是我可以访问https://pypi.python.org/simple/objdict/使用我的 Firefox 并手动下载软件包。当我这样做时,我可以看到 Firefox 使用伪造的sophos 证书,一切似乎运行正常。

我已经尝试--cert在 pip 上使用选项,并尝试将证书添加到 C:\Python27\Lib\site-packages\pip_vendor\requests\cacert.pem 文件中。--proxy按照 SO 和 SU 上的各种讨论所建议的各种组合使用选项。

那么您能建议我下一步应该怎么做吗?

答案1

http_proxy当使用和https_proxy变量为 pip 指定代理时,问题就消失了。显然 pip 忽略了--proxy命令行中的选项,但它读取了环境变量。

Pip 使用 Windows 系统的代理设置“互联网选项”Chrome 和 Internet Explorer 会使用它,但 Firefox 会忽略它。在我的特定情况下,Internet 选项设置为使用 10.10.2.124 上的代理(错误),我也不需要它。

删除代理检查“互联网选项”实际上减轻了指定环境变量的需要。剩下唯一需要说明的是证书,可以使用 --cert 选项来完成。

相关内容