如何在Twine中禁用SSL证书验证?



当我尝试将新软件包推送到我公司的工件时:

python -m twine upload --repository-url https:///artifactory/api/pypi/gdp_pypi dist/*

我在 SSL 上收到错误。 啪。SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:841)

有什么方法可以禁用SSL验证吗?

我刚刚通过另一篇文章尝试了解决方案: 禁用导入模块的 Python 请求 SSL 验证

只需将环境变量CURL_CA_BUNDLE设置为空字符串即可完成工作!

$ 导出 CURL_CA_BUNDLE=">

使用"禁用 Python 请求导入模块的 SSL 验证"中所述CURL_CA_BUNDLE的解决方法不再有效。

可能的解决方案是使用单独的脚本,该脚本可以命名为包含以下代码twine-trusted

import twine.__main__

def disable_server_certificate_validation():
"Allow twine to just trust the hosts"
twine.repository.Repository.set_certificate_authority = lambda *args, **kwargs: None

def main():
disable_server_certificate_validation()
twine.__main__.main()
__name__ == '__main__' and main()

来源: https://github.com/pypa/twine/pull/463#issuecomment-556892003

如上所述设置空字符串似乎不再有效:

$ export CURL_CA_BUNDLE=""

但是,当我在浏览器中导航到组织的 Github(证书已安装并工作的地方)并下载链中第一个证书的.crt时,它在将变量设置为该.crt文件时确实有效。

$ export CURL_CA_BUNDLE="/path/to/cert.crt"

最新更新