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

Artifactory对接Docker Hub时SSL证书问题排查求助

Artifactory 6.x 连接Docker Hub PKIX证书路径问题排查

问题背景

本地部署Artifactory 6.x,创建指向Docker Hub(https://registry-1.docker.io/v2/)的远程仓库并加入虚拟仓库,执行docker pull时报错:

error pulling image configuration: download failed after attempts=1: unknown blob

清理缓存无效,查看Artifactory日志发现证书路径错误:

2024-04-19 15:32:03,099 [http-nio-8081-exec-7] [WARN ] (o.a.r.RemoteRepoBase:437) - dockerhub: Error in getting information for 'jfrogecosystem/jfrog-setup-cli/2.0.0/sha256__xxxxxxxxxxxxxxxxxxxxxxxxxx' (Failed retrieving resource from https://registry-1.docker.io/v2/jfrogecosystem/jfrog-setup-cli/blobs/sha256:xxxxxxxxxxxxxxxxxxxxxxx: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target)

已导入根/中间/服务器证书到Artifactory的Java密钥库,但问题依旧。

排查与解决步骤

  • 确认证书导入至正确的密钥库
    Artifactory 6.x默认使用自带JRE,密钥库路径为$ARTIFACTORY_HOME/jre/lib/security/cacerts,而非系统JVM的密钥库。执行以下命令验证证书是否存在:

    keytool -list -keystore $ARTIFACTORY_HOME/jre/lib/security/cacerts -storepass changeit | grep <你的证书别名>
    

    若未找到,需重新将证书导入该路径的密钥库。

  • 检查证书链完整性
    Docker Hub的证书链包含根CA、中间CA和服务器证书,必须完整导入且顺序正确(先根CA,再中间CA,最后服务器证书)。可通过以下命令获取完整证书链:

    openssl s_client -connect registry-1.docker.io:443 -showcerts
    

    将输出中的每个证书(从-----BEGIN CERTIFICATE-----到-----END CERTIFICATE-----)保存为单独的.crt文件,再依次导入密钥库。

  • 重启Artifactory使配置生效
    证书导入后必须重启Artifactory服务,否则JVM不会加载更新后的密钥库:

    # systemd环境
    systemctl restart artifactory
    # 手动启动环境
    $ARTIFACTORY_HOME/bin/artifactoryctl restart
    
  • 排查代理配置(若使用代理)
    若Artifactory通过代理访问Docker Hub,需将代理的证书也导入密钥库;或在远程仓库的代理配置中确认证书验证设置(生产环境不建议禁用验证)。

  • 验证服务器层面的证书信任
    在Artifactory所在服务器执行curl测试,确认服务器本身能信任Docker Hub的证书:

    curl -v https://registry-1.docker.io/v2/jfrogecosystem/jfrog-setup-cli/blobs/sha256:xxxxxxxxxxxxxxxxxxxxxxx
    

    若curl返回证书错误,需先解决系统层面的证书信任问题(将证书导入系统信任库,如/etc/pki/ca-trust/source/anchors/并更新信任)。

  • 修正远程仓库URL配置
    远程仓库的URL应设置为https://registry-1.docker.io(无需添加/v2/后缀),Artifactory会自动处理路径映射。同时确认"Enable Token Authentication"选项已开启,Docker Hub需要令牌认证访问部分镜像。

内容的提问来源于stack exchange,提问作者gil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 09:15:16