machine how for windows docker virtualbox boot2docker

how - docker virtualbox windows 10



Docker en Windows(Boot2Docker): certificado firmado por error de autoridad desconocida (3)

Este problema general me ha estado molestando durante un par de meses. Lo noté por primera vez cuando intentaba que una máquina virtual local buscara paquetes de Python, así que ya tenía una idea de que los certificados serían un problema. Lo resolví para mis máquinas virtuales, pero hasta hoy no había podido encontrar una solución para Docker. El truco es agregar los certificados al almacén de certificados de Docker y hacer que persistan. Esto se logra mediante el uso de un script bootlocal.sh que se ejecuta cada vez que se inicia la máquina.

Supongo que si ya ha encontrado las respuestas para Linux, ya conoce los primeros pasos. Los documentaré aquí por ser minucioso, porque es posible que otros no hayan llegado tan lejos. Comience con el # 3 a continuación si ya ha hecho el # 1 y el # 2 por medio de intentos anteriores.

  1. Obtenga el conjunto de certificados raíz corporativos, que deben instalarse en su navegador configurado por la empresa. En Chrome, puede ir a Configuración, hacer clic en Mostrar configuración avanzada y desplazarse hacia abajo a HTTPS / SSL, donde puede seleccionar Administrar certificados. Mi organización las ha colocado en Autoridades de certificación de raíz de confianza y las ha nombrado después de la organización. Exportar cada uno (tengo dos), uno a la vez, asegurándose de elegir el formato DER.

  2. Una vez que los haya guardado en una ubicación conocida, deseará convertirlos a formato PEM. La forma más sencilla que encontré para hacer esto fue ejecutar el comando openssl.exe [1] desde la Terminal de inicio rápido de Docker.

    openssl x509 -inform der -in certificate.cer -out certificate.pem

  3. Una vez que tenga los archivos .pem, deseará copiarlos en una ubicación a la que tenga acceso su máquina Docker. Hice un directorio en c: / Users / my.username / certs y los copié allí.

  4. Este paso puede no ser estrictamente necesario, pero es lo que hice y funciona. Querrá copiar esos certificados en su partición boot2docker, que es persistente. Me estoy conectando a mi máquina predeterminada, que es algo que deberá hacer para el Paso 5.

    MINGW64:$ docker-machine ssh default docker@default:~$ sudo -s root@default:/home/docker# mkdir /var/lib/boot2docker/certs root@default:/home/docker# cp /c/Users/my.username/certs/*.pem /var/lib/boot2docker/certs/

  5. Ahora es el momento de escribir un script bootlocal.sh, que copiará los certificados en la ubicación adecuada cada vez que se inicie el sistema. [2] Si aún no lo ha hecho, abra una conexión SSH a la máquina, según el Paso 4.

    touch /var/lib/boot2docker/bootlocal.sh && chmod +x /var/lib/boot2docker/bootlocal.sh vi /var/lib/boot2docker/bootlocal.sh

    Inserte lo siguiente y guarde el archivo:

    #!/bin/sh mkdir -p /etc/docker/certs.d && cp certs/certificate.pem /etc/docker/certs.d

  6. Reinicie la máquina, ya sea usando el comando de reinicio desde dentro de la máquina o usando el comando docker-machine desde la terminal de Docker:

    docker-machine restart default

Ahora deberías poder ejecutar ''hello-world'' y otros. Espero que esto ayude.

Fuentes

[1] https://serverfault.com/questions/254627/how-to-convert-a-cer-file-in-pem

[2] https://github.com/boot2docker/boot2docker/issues/347#issuecomment-189112043

Estoy ejecutando Docker en Windows (boot2docker + Oracle Virtual Box). En mi entorno corporativo, modifican los certificados para que las CA sean las CA autofirmadas de la empresa. Así, la cadena termina así:

Company''s CA |__ Company''s Intermediate CA |__ Docker Certificate

Cuando intento ejecutar cualquier comando, como:

docker run hello-world

Me sale este error:

Get https://index.docker.io/v1/repositories/library/hello-world/images: x509: certificate signed by unknown authority

He encontrado varias respuestas a este problema pero siempre para entornos Linux. ¿Cómo puedo solucionar este problema en Windows?


Para exportar el certificado, puede elegir el formato de archivo como " Base-64 codificado x.509 (.CER) " y finalmente cambiar el nombre de la extensión del certificado como .pem .


Una forma de hacerlo Con Firefox, vaya a url: https://auth.docker.io/token?scope=repository%3Alibrary%2Fhello-world%3Apull&service=registry.docker.io , haga clic en ver detalles para el certificado y extraer como crt.

Copie el archivo a la VM donde el sistema operativo almacena el crt:

CentOS

etc/pki/ca-trust/source/anchors/ # Then run update-ca-trust force-enable update-ca-trust extract

Ubuntu

/usr/share/ca-certificates #Then run sudo dpkg-reconfigure ca-certificates

Reinicie docker, y debería funcionar