Как установить файл CA сертификата SSL / TLS в Mac для безопасного входа в систему через удаленный репозиторий (HTTPS) - PullRequest
0 голосов
/ 04 июля 2018

Я установил или получил защищенный URL (HTTPS) для удаленного реестра Docker. Мне нужно выполнить вход в Docker в удаленный реестр, чтобы иметь возможность выдвигать мои локально созданные образы Docker.

Команда будет выглядеть примерно так:

docker login -u myUser https://registry.mydomain.example.com

Однако при входе в Docker происходит сбой с ошибкой проверки сертификата x509, например:

Error response from daemon: Get https://registry.mydomain.example.com/v2/: x509: certificate signed by unknown authority


Я использую macOS / OS X, как я могу получить свой локальный Docker (клиент Docker) для принятия сертификата TLS удаленного репозитория для трафика HTTPS?

Кроме того, как только будет работать безопасное HTTPS-соединение, как мне построить и передать свой образ в удаленный репозиторий, после того как я написал Dockerfile и проверил локально, что мой образ работает?

1 Ответ

0 голосов
/ 04 июля 2018

В отличие от ссылки документации Docker, касающейся этого вопроса, инструкции Linux / Unix также работают для macOS / OS X:
https://docs.docker.com/engine/security/certificates/

Ниже приведены инструкции по работе с MacBook Pro с использованием macOs High Sierra 10.13.5 (17F77)
Docker-клиент (локальный Docker) версия: 18.03.1-ce

Поместите файл центра сертификации (CA), предоставленный удаленным администратором реестра, в определенную структуру папок с помощью команд терминала:

sudo mkdir -p /etc/docker/certs.d/registry.mydomain.example.com
sudo cp ca.crt /etc/docker/certs.d/registry.mydomain.example.com

Примечание: Если вы используете URL-адрес с портом для подключения к реестру, порт должен быть включен в имя папки в папке certs.d. URL также может быть в форме IP:

sudo mkdir -p /etc/docker/certs.d/registry.mydomain.example.com:443
sudo mkdir -p /etc/docker/certs.d/172.123.123.1:443

РЕДАКТИРОВАТЬ ДОБАВИТЬ!
Я проверил это с коллегой, и было обнаружено, что требуется добавить файл CA в macOS Keychain (я также делал это ранее). It is currently unknown if the above /etc/docker steps are even required on Mac. Мы использовали это руководство для импорта файла ca.crt в связку ключей (в меню «Сертификаты» отображается как «ненадежный»).
https://www.sslsupportdesk.com/how-to-import-a-certificate-into-mac-os/

После этого перезапустите локальный Docker.

После этого вход в Docker должен работать нормально. Если вы все еще продолжаете получать ошибку неизвестного прав доступа x509, возможно, было бы неплохо проверить достоверность сертификата сервера удаленного реестра (например, путем перехода по URL-адресу реестра с помощью браузера) на файл CA, используя команды openssl: https://www.sslshopper.com/article-most-common-openssl-commands.html

Ниже приведен пример работы с интегрированным (атомарным) реестром OpenShift:

oc login https://registry.mydomain.example.com -u myUser --certificate-authority=ca.crt
docker login -u $(oc whoami) -p $(oc whoami -t) https://registry.mydomain.example.com


Вы должны получить приглашение, которое Login Succeeded, затем:

docker build -t registry.mydomain.example.com/openshiftProject/my-image:1.0 .
docker push registry.mydomain.example.com/openshiftProject/my-image:1.0
...