1
votes

docker push avec le serveur notaire local renvoie l'erreur: x509: certificat signé par une autorité inconnue

J'ai travaillé à la mise en place d'un notaire docker sur une machine Centos 8. J'ai suivi le README.md pour le projet notaire qui me dit d'utiliser le certificat de test fourni avec le projet en le déplaçant dans le dossier .notary de mon répertoire personnel. Mon espoir ici est que lorsque mon client docker est configuré pour cela et que je balise correctement l'image, un push docker vers mon repo docker privé (jFrog Artifactory) aboutira à une image publiée qui est signée par le notaire.

Mon dépôt privé s'exécute sur sa propre machine et non sur la machine sur laquelle s'exécute le serveur de notaire.

Mais chaque fois que je vais pousser, j'obtiens cette erreur:

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

Une des façons dont j'ai essayé de résoudre ce problème est de copier les certificats de test de fixtures/root-ca.crt vers /etc/pki/ca-trust/source/anchors/ après quoi j'ai exécuté update-ca-trust .

Signing and pushing trust metadata
Error: error contacting notary server: x509: certificate signed by unknown authority

Mais faire cela n'a pas non plus aidé. Pourquoi le serveur notaire lance-t-il cette erreur? Une aide pour résoudre ce problème serait grandement appréciée.


0 commentaires

3 Réponses :


0
votes

Je n'ai pas eu de problèmes avec le registre de conteneurs Azure. En travaillant sur le registre Jfrog, j'ai eu la même erreur

Votre travail m'a aidé "$ sudo cp fixtures / root-ca.crt / etc / pki / ca-trust / source / anchors / $ update-ca-trust" Si cela aide, je peux poster mes étapes Merci @RijoSimon


2 commentaires

Merci Pradeep. Oui, pourriez-vous s'il vous plaît poster vos étapes. J'aimerais voir si j'ai raté quelque chose.


Il semble que l'artifice n'aime pas les certificats auto-signés



-1
votes

Rijo ma solution n'est pas complète car cela ne fonctionne pas sur un serveur distant, face à une erreur

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

Voici ma solution où j'ai pu signer l'image localement sur le serveur du notaire et la pousser

Error: error contacting notary server: x509: certificate is valid for 127.0.0.1, not xx.xx.xx.xx(notaryIP)

J'espère que ça aide 😊


0 commentaires

0
votes

Avec la confiance de contenu docker, vous pouvez ajouter l'autorité de certification au répertoire de base de l'utilisateur dans un sous-répertoire sous ~/.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}

Notez que le certificat doit probablement se terminer par «crt» et si vous ne remplacez pas le serveur de confiance de contenu, le nom d'hôte correspondra au nom du registre.


0 commentaires