我突然收到了这条消息后,一个月的码头信任工作,为我通过GitLab CI。
我有一个Gitlab Runner,它安装了~/..docker/trust(所以它是持久化的),并将它推送到QA注册中心。
tag_image_test:
stage: tag_image
script:
- docker login -u "gitlab-ci-token" -p "$CI_BUILD_TOKEN" $CI_REGISTRY
- docker pull "${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}"
- export DOCKER_CONTENT_TRUST=1
- export DOCKER_CONTENT_TRUST_SERVER=$QA_REGISTRY_SIGNER
- export DOCKER_CONTENT_TRUST_ROOT_PASSPHRASE=$QA_REGISTRY_SIGNER_ROOT_PASSPHRASE
- export DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE=$QA_REGISTRY_SIGNER_REPO_PASSPHRASE
- docker login -u "$QA_REGISTRY_USERNAME" -p "$QA_REGISTRY_PASSWORD" $QA_REGISTRY_URL
- export PROJ_PATH=$(echo -en $CI_PROJECT_PATH | tr '[:upper:]' '[:lower:]')
- docker tag "${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}" "${QA_REGISTRY_IMAGE}/${PROJ_PATH}:${CI_COMMIT_REF_SLUG}"
- docker push "${QA_REGISTRY_IMAGE}/${PROJ_PATH}:${CI_COMMIT_REF_SLUG}"
但是,push命令的结尾是:
time="2019-03-18T11:51:14Z" level=debug msg="failed to verify TUF data for: qa.registry.local/mygroup/myimage, valid signatures did not meet threshold for "
time="2019-03-18T11:51:14Z" level=debug msg="downloaded 1.root is invalid: could not rotate trust to a new trusted root: failed to validate data with current trusted certificates"
time="2019-03-18T11:51:14Z" level=debug msg="Client Update (Root): could not rotate trust to a new trusted root: failed to validate data with current trusted certificates"
could not rotate trust to a new trusted root: failed to validate data with current trusted certificates
当我查看root.json
文件时,过期时间不会很长:
"expires":"2029-02-08T15:07:05.172338131Z"
同样适用于targets.json
"expires":"2022-02-10T15:07:05.173954376Z"
所以我对正在发生的事情茫然不知所措,可能不明白它想要做什么。有人有洞察力吗?
发布于 2019-03-23 09:31:44
我还在学习码头,但你确定是root.json在里面,而不是roots.json。
根据这里的配置,应该在roots.json中查找可信证书。
也许你是推到错误的文件来识别你的根,或者你可以在你的帖子中输入一个错误。
这些错误是如何生成的,在那里可以看到这些错误发生的原因。
例如,关于键旋转错误:
当我们无法执行完整的根键旋转//失败添加新根证书或删除旧的根证书时,将返回// ErrRootRotationFail。
发布于 2019-03-23 10:19:36
这只是一个局部腐败的状态,对吗?您应该能够用一个公证删除server.example.com/test1
来修复它。
我想要解决的问题是延迟初始化,不再需要显式调用公证init。作为延迟初始化的一部分,在假设需要在本地创建现有数据之前,我们总是会查询服务器的现有数据。
短期修复可能是检查服务器,或者如果网络连接不可用,则检查现有数据的本地缓存。目前,我相信init假设回购不存在,并覆盖任何现有的缓存。
另外,请确保在主机文件中配置DNS和主机条目。
为了UCP签名策略的目的,通过管理设置的“Content”部分进行配置,我们必须能够识别由UCP组织的成员签名的图像。我们通过使用您可以从UCP为您的用户帐户下载的客户端包来做到这一点。Client包含一个“cert.pem”文件,它是由UCP证书颁发机构签名的x509证书,而“key.pem”文件是与证书匹配的私钥。
您需要创建“目标值/发布”委托和另一个委托,例如“targets/my_user”,并将“cert.pem”添加为对两者都进行公开签名的密钥。然后,当另一个服务检查信任数据时,他们可以确定证书属于UCP组织的成员,并且他们的签名应该是可信的。然后,您需要导入key.pem,以便在您推送时可以对其进行签名。
文档 23提供了更多要运行的信息和特定命令,特别是“初始化回购”部分。
https://stackoverflow.com/questions/55220884
复制相似问题