docker push与本地公证服务器一起返回错误:x509:由未知授权机构签署的证书

docker push与本地公证服务器一起返回错误:x509:由未知授权机构签署的证书,docker,artifactory,docker-registry,jfrog-container-registry,notary,Docker,Artifactory,Docker Registry,Jfrog Container Registry,Notary,我一直在Centos 8机器上设置docker公证人。我遵循了公证项目的要求,该项目要求我使用测试证书 通过将其移动到我的主目录中的.notary文件夹来提供。我的希望是,当我的docker客户端为其设置时,当我正确标记图像时,docker推送到我的私有docker repo(jFrog Artifactory)将生成一个由公证人签名的已发布图像 我的私人回购在自己的机器上运行,而不是在运行公证服务器的机器上运行 但每次我去推我都会得到这样的错误: Signing and pushing tru

我一直在Centos 8机器上设置docker公证人。我遵循了公证项目的要求,该项目要求我使用测试证书 通过将其移动到我的主目录中的
.notary
文件夹来提供。我的希望是,当我的docker客户端为其设置时,当我正确标记图像时,docker推送到我的私有docker repo(jFrog Artifactory)将生成一个由公证人签名的已发布图像

我的私人回购在自己的机器上运行,而不是在运行公证服务器的机器上运行

但每次我去推我都会得到这样的错误:

Signing and pushing trust metadata
Error: error contacting notary server: x509: certificate signed by unknown authority
我试图解决这个问题的方法之一是将测试证书从
fixtures/root-ca.crt
复制到
/etc/pki/ca-trust/source/anchors/
,然后运行
更新ca-trust

$ sudo cp fixtures/root-ca.crt /etc/pki/ca-trust/source/anchors/
$ update-ca-trust

但这样做也无济于事。为什么公证服务器抛出此错误?如果您能帮助解决此问题,我们将不胜感激。

我在Azure容器注册中心工作时没有遇到任何问题。 在处理Jfrog注册表时,我也犯了同样的错误

你的工作帮助了我 “ $sudo cp fixtures/root-ca.crt/etc/pki/ca trust/source/anchors/ $ca信任更新 “ 如果有帮助,我可以发布我的步骤
谢谢@RijoSimon

Rijo我的解决方案不完整,因为这在远程服务器上不起作用,面临错误

Error: error contacting notary server: x509: certificate is valid for 127.0.0.1, not xx.xx.xx.xx(notaryIP)
这是我的解决方案,它能够在公证服务器上本地签名并推送图像

Docker login artifactoryurl 
username:
password: 
Login successful 
docker trust key generate keyname 
export DOCKER_CONTENT_TRUST=0
docker build -f Dockerfile -t artrifactoryurl/reponame:tag .           
export DOCKER_CONTENT_TRUST_SERVER=http://127.0.0.1:4443   
export DOCKER_CONTENT_TRUST=1  
docker trust signer add —key keyname.pub name artifactoryurl/repo
docker trust sign artifactoryurl/reponame:tag
docker inspect artifactoryurl/reponame:tag

希望对docker content trust有帮助,您可以将CA添加到用户的主目录中
~/。docker/tls

mkdir -p ~/.docker/tls/${content_trust_hostname}
cp ca.pem ~/.docker/tls/${content_trust_hostname}/ca.crt
export DOCKER_CONTENT_TRUST=1
docker push ${content_trust_hostname}/${your_repo}:${tag}

请注意,证书可能需要以“crt”结尾,如果您不重写content trust server,主机名将与注册表名匹配。

谢谢。是的,请发布您的步骤。我想看看是否遗漏了什么。artifactory似乎不喜欢自签名证书