You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

企业环境下使用Twine上传至Artifactory时解决证书错误

解决Twine上传Python包到HTTPS Artifactory的SSL证书验证失败问题

问题场景

本地使用Twine上传Python包至启用HTTPS的Artifactory服务器,执行命令:

twine upload --verbose \
--repository-url https://URL/artifactory/api/pypi/PATH \
--username XX \
--password XX \
dist/*

触发SSL验证错误:

requests.exceptions.SSLError: HTTPSConnectionPool(host='URL', port=443): Max retries exceeded with url: /artifactory/api/pypi/PATH (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)')))

尝试添加--cert参数指定下载的cert.pem文件:

twine upload --verbose \
--repository-url https://URL/artifactory/api/pypi/PATH \
--username XX \
--password XX \
--cert ../../bin/cert.pem \
dist/*

但仍报错:

certificate verify failed: unable to get local issuer certificate 

需在不禁用SSL检查的前提下解决该问题。

正确解决步骤

1. 获取完整的证书链

单独的服务器证书可能缺少上级颁发机构的证书,导致验证失败。需导出Artifactory服务器的完整证书链:

  • 用浏览器访问Artifactory的HTTPS地址,点击地址栏锁图标查看证书详情
  • 依次导出服务器证书、中间CA证书、根CA证书,将它们合并到同一个PEM文件中(顺序:服务器证书在前,中间CA次之,根CA最后)

2. 准确指定证书路径

确保--cert参数指向包含完整证书链的PEM文件,建议使用绝对路径避免相对路径错误:

twine upload --verbose \
--repository-url https://URL/artifactory/api/pypi/PATH \
--username XX \
--password XX \
--cert /绝对路径/完整证书链文件.pem \
dist/*

3. 配置全局证书(可选)

若不想每次命令都加--cert参数,可选择以下方式之一:

  • 将完整证书链添加到系统信任证书库:
    • Windows:通过「证书管理器」导入证书并设置为受信任
    • Linux:将证书文件拷贝至/etc/ssl/certs目录,执行update-ca-certificates更新
    • macOS:通过「钥匙串访问」导入证书,设置信任级别为「始终信任」
  • 设置Python环境变量REQUESTS_CA_BUNDLE指向证书文件:
    # Linux/macOS终端
    export REQUESTS_CA_BUNDLE=/绝对路径/完整证书链文件.pem
    # Windows CMD
    set REQUESTS_CA_BUNDLE=C:\绝对路径\完整证书链文件.pem
    # Windows PowerShell
    $env:REQUESTS_CA_BUNDLE = "C:\绝对路径\完整证书链文件.pem"
    
    设置后,Twine会自动使用该证书验证,无需再添加--cert参数。

4. 验证证书有效性

用openssl命令测试证书链是否有效:

openssl s_client -connect URL:443 -CAfile /绝对路径/完整证书链文件.pem

若输出包含Verify return code: 0 (ok),则证书链验证通过。

内容的提问来源于stack exchange,提问作者Itération 122442

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 16:45:40