Docker auf Windows (Boot2Docker) - Zertifikat, das die Unterschrift von unbekannter Zertifizierungsstelle Fehler
Ich bin mit Docker auf Windows (boot2docker + Oracle Virtual Box). In meinem unternehmerischen Umfeld ändern Sie die Zertifikate, so dass die CAs der Firma self signed CA. Damit endet die Kette wie diese:
Company's CA
|__
Company's Intermediate CA
|__
Docker Certificate
Wenn ich versuche einen beliebigen Befehl ausführen, wie:
docker run hello-world
Bekomme ich diesen Fehler:
Get https://index.docker.io/v1/repositories/library/hello-world/images: x509: certificate signed by unknown authority
Ich fand mehrere Antworten auf dieses problem, aber immer für Linux-Umgebungen. Wie kann ich den workaround für dieses problem in Windows?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieses Allgemeine Problem wurde plagen mich seit ein paar Monaten. Zuerst bemerkte ich es beim Versuch, eine lokale virtuelle Maschine zu Holen Python-Paketen, so hatte ich bereits eine Idee, die Zertifikate wäre ein Problem. Ich löste es, für meine VMs, aber hatte erst heute in der Lage gewesen, zu arbeiten, eine Lösung für Docker. Der trick ist, fügen Sie die Zertifikate, um das Andockfenster ' s cert store und haben Sie beibehalten. Dies wird erreicht, indem ein
bootlocal.sh
script, der ausgeführt wird, jedes mal, wenn der Computer gestartet wird.Ich nehme an, wenn du schon die Antworten gefunden für Linux, kennen Sie bereits die ersten Schritte. Ich werde dokumentieren, die Ihnen hier für den Willen des seins gründlich, weil andere vielleicht nicht so weit gekommen. Starten Sie mit #3 unten, wenn Sie bereits getan habe #1 und #2 von Art und Weise der bisherigen versuche.
Holen Sie sich die Unternehmens-root-Zertifikate, die installiert werden sollen, in Ihrem corporate-browser konfiguriert. In Chrome, Sie können gehen Sie zu Einstellungen, klicken Sie auf erweiterte Einstellungen Anzeigen und scrollen Sie nach unten, um HTTPS/SSL, wo Sie können wählen, Verwalten von Zertifikaten. Meine Organisation hat Sie in den Vertrauenswürdigen Stammzertifizierungsstellen und benannte Sie nach der Organisation. Export jeder (ich habe zwei), ein zu einer Zeit. Sie können wählen, ob Sie DER-format und führen Sie Schritt #2 unten, um zu konvertieren, um PEM, oder Sie können wählen, Base-64-codiert X. 509 (.CER) und benennen Sie einfach die Erweiterung zu .pem - und überspringen Sie Schritt #2.
Sobald Sie Sie gespeichert auf einer bekannten Position, werden Sie wollen, konvertieren Sie Sie in PEM-format, wenn Sie sparen als duch. Der einfachste Weg ich gefunden, dies zu tun war, laufen die openssl.exe[1] Befehl innerhalb des andockfensters Quickstart-Terminal.
Sobald Sie haben die .pem-Dateien sind, werden Sie wollen, um Sie zu kopieren, um einen Speicherort, an dem Ihre Docker machine Zugriff hat. Typisch für MS Windows, du musst /c/Benutzer von der host-Maschine, die automatisch montiert in Ihrem docker-Maschine. Ich machte ein Verzeichnis, in c:\Users\meine.Benutzername\certs kopiert und Sie dort.
Dieser Schritt ist vielleicht nicht unbedingt nötig, aber es ist, was ich Tat, und es funktioniert. Sie möchten, kopieren Sie die Zertifikate in Ihrem boot2docker-partition, die ist hartnäckig. Ich bin die Verbindung zu meinem Standard-Maschine, die IST etwas, das Sie tun müssen, wird zu Schritt 5.
Jetzt ist es Zeit zu schreiben bootlocal.sh Skript, das kopieren der Zertifikate an die richtige Stelle jedes mal, wenn das system gestartet wird.[2] Wenn Sie nicht bereits getan haben, öffnen Sie eine SSH-Verbindung zu der Maschine, die pro Schritt 4.
Fügen Sie den folgenden, und speichern Sie die Datei:
Starten Sie den Computer neu, indem Sie den Neustart-Befehl innerhalb der Maschine, oder durch verwenden der docker-Maschine-Befehl aus dem Andockfenster terminal:
Nun sollten Sie in der Lage zu laufen 'Hallo-Welt' und andere. Ich hoffe, das hilft.
Quellen
[1] https://serverfault.com/questions/254627/how-to-convert-a-cer-file-in-pem
[2] https://github.com/boot2docker/boot2docker/issues/347#issuecomment-189112043
"https://registry-1.docker.io/v2/"
, konvertieren*.pem
und kopiert/etc/docker/certs.d
, nur dann hat es geklappt! Aber diese Schritte haben mir sehr geholfen, herauszufinden dieses heraus.bootlocal.log
,boot2docker.log
unddocker.log
bieten gute details, was hinter den kulissen geschieht, um Ihnen bei der Problembehandlung helfen.Einen Weg, es zu tun
Mit Firefox, gehe zu url: https://auth.docker.io/token?scope=repository%3Alibrary%2Fhello-world%3Apull&service=registry.docker.io, klicken Sie auf anzeigen von details des Zertifikats und extrahieren Sie es als crt.
Kopieren Sie die Datei für die VM, wo das os speichert die crt:
CentOS
Ubuntu
Neustart Andockfenster, und es sollte funktionieren
Für den Export-Zertifikat, können Sie wählen Sie " Datei-format als "Base-64-codiert X. 509(.CER)" und schließlich benennen Sie das Zertifikat als Erweiterung .pem -.