【问题标题】:How to get pip proxy to work with company certificate-chain?如何让 pip 代理与公司证书链一起使用?
【发布时间】:2020-02-12 10:11:36
【问题描述】:

我正试图让 pip 在我工作的代理网络后面工作。我有代理的凭据和证书链文件,但无论我做什么,我都无法让它停止抛出 SSL 错误:

Could not fetch URL https://pypi.python.org/simple/pyinstaller/: There was a problem confirming the
ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645) - skipping

我已经看到 pip.ini 应该存在于 %APPDATA% 但它不存在,甚至那里不存在 pip 文件夹。此外,丢失文件的人能够创建它并让它以这种方式工作。我也试过这个,它对我不起作用。我什至尝试使用--certpip install 语句本身中专门指定证书,但没有运气。

我需要做什么?

【问题讨论】:

    标签: python pip command-prompt


    【解决方案1】:

    证书应位于相对于 Python 安装目录的 Lib\site-packages\pip\_vendor\certifi\cacert.pem 中。例如,如果您在 C:\Python3 中安装了 Python,则在 C:\Python3\Lib\site-packages\pip\_vendor\certifi\cacert.pem 中可以找到证书列表。如果您使用的是 python 虚拟环境,它位于 venv 内。

    您需要将您的公司证书附加到此cacerm.pem 文件中。确保公司证书采用 base-64 编码(有时也称为 PEM 格式)。然后您可以使用文本编辑器来连接文件。

    注意:如果您升级 pip,您对 cacert.pem 的更改可能会丢失。所以,准备好在每次更新 pip 后重复这个操作。

    【讨论】:

    • 我在 \_vendor\ 下没有 certifi 文件夹
    • 嗯,我的机器上安装了 2.7、3.5 和 3.7。事实上,该文件夹仅存在于 3.7。我从未尝试过旧版本。
    • 仍然没有骰子,\Python35\Lib\site-packages\ 中没有证书文件夹
    • 不存在pip.ini 的谜题解释here。因此,您可以从头开始创建 pip.ini 并使用 here 所述的证书路径填充。
    • 正如我在帖子中所说,我已经尝试过了,但没有任何运气
    猜你喜欢
    • 1970-01-01
    • 2014-05-19
    • 2016-06-20
    • 2021-09-25
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    相关资源
    最近更新 更多