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

问题描述 投票:0回答:3

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

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

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

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

ssl-certificate twine
3个回答
2
投票

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

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

$ 导出 CURL_CA_BUNDLE=""


1
投票

按照上面的建议设置空字符串似乎不再起作用:

$ export CURL_CA_BUNDLE=""

但是,当我在浏览器中导航到组织的 Github(证书已安装并运行的地方)并下载链中第一个证书的

.crt
时,将变量设置为该
.crt
文件时它确实起作用了.

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

0
投票

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

可能的解决方案是使用单独的脚本,该脚本可以命名为

twine-trusted
,其中包含以下代码:

import twine.__main__
import twine.repository

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

© www.soinside.com 2019 - 2024. All rights reserved.