cosign sign wirft Fehler "http: server gave HTTP response to HTTPS client"
Symptome
Umgebung: Komm.ONE GitLab Issue 49
cosign installieren:
nix-env -iA nixpkgs.cosign
key pair generieren:
cosign generate-key-pair
Container bauen und pushen:
mkdir hello-container
cd hello-container
cat<<EOT>Dockerfile
FROM alpine
CMD ["echo", "Hello, Cosign!"]
EOT
docker build -t artifact-server:4711/cosign-kurs/hello-container .
docker push artifact-server:4711/cosign-kurs/hello-container
cosign sign wirft ein Fehler, obwohl in /etc/docker/daemon.json als auch bei cosign insecure registries erlaubt werden:
cosign sign -d --allow-insecure-registry --key cosign.key artifact-server:4711/cosign-kurs/hello-container
Workaround
Es funktioniert mit folgenden Maßnahmen.
/etc/default/docker:
...
DOCKER_OPTS="--config-file=/etc/docker/daemon.json"
...
restart docker daemon sudo systemctl restart docker
IP statt artifact-server in /etc/docker/daemon.json und in docker build
und docker push
einsetzen:
docker login W.X.Y.Z:4711
cd hello-container
docker build -t W.X.Y.Z:4711/cosign-kurs/hello-container .
docker push W.X.Y.Z:4711/cosign-kurs/hello-container
cosign sign --allow-insecure-registry --key cosign.key W.X.Y.Z:4711/cosign-kurs/hello-container # funkioniert
cosign verify --allow-insecure-registry --key cosign.pub W.X.Y.Z:4711/cosign-kurs/hello-container # funktioniert