当我尝试将新包推送到我公司的工件时:
python -m twine upload --repository-url https:///artifactory/api/pypi/gdp_pypi dist/*
我在 SSL 上遇到错误。 ssl.SSLError:[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:841)
有什么方法可以禁用SSL验证吗?
我刚刚尝试了另一篇文章的解决方案: 禁用 Python 对导入模块请求 SSL 验证
只需将环境变量 CURL_CA_BUNDLE 设置为空字符串即可完成工作!
$ 导出 CURL_CA_BUNDLE=""
按照上面的建议设置空字符串似乎不再起作用:
$ export CURL_CA_BUNDLE=""
但是,当我在浏览器中导航到组织的 Github(证书已安装并运行的地方)并下载链中第一个证书的
.crt
时,将变量设置为该 .crt
文件时它确实起作用了.
$ export CURL_CA_BUNDLE="/path/to/cert.crt"
“
禁用 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