Сбой образа выталкивания частного докера Nexus с x509: невозможно проверить ошибку сертификата - PullRequest
0 голосов
/ 09 апреля 2019

Я установил Nexus-3.15.2-01 на CentOS-7.6, обратный прокси-сервер Nginx и самозаверяющий сертификат SSL, настроенный для доступа через Https. https доступ работает нормально через браузер.

Активирован метод https для частного хранилища Nexus Docker.

Когда я пытался получить образы докера с моего личного сервера док-станции nexus, с моего хоста докера произошел сбой ниже.

docker pull 101.102.103.104:5051/docker-image-14:1
Error response from daemon: Get https:// 101.102.103.104:5051/v2/: x509: cannot validate certificate for 101.102.103.104 because it doesn't contain any IP SANs

Я переместил свой файл nexus.crt в папку хоста докера /etc/docker/certs.d/101.102.103.104:5051/. Все еще не работает.

1 Ответ

0 голосов
/ 09 апреля 2019

В реестре Docker сертификат должен быть скомпилирован с subjectAltName, как описано в документации :

Вы можете попробовать создать сертификат следующим образом:

openssl genrsa -aes256 -out ca-key.pem 4096
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
openssl genrsa -out server-key.pem 4096
openssl req -subj "/CN=101.102.103.104" -sha256 -new -key server-key.pem -out server.csr
echo subjectAltName = DNS:101.102.103.104,IP:101.102.103.104,IP:127.0.0.1 >> extfile.cnf
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf

Затем вы можете проверить, присутствует ли альтернативное имя субъекта (SAN) в сертификате, с помощью следующей команды:

openssl x509 -in server-cert.pem -text -noout

Теперь попробуйте снова потянуть.Не забудьте поставить новый сертификат на /etc/docker/certs.d/101.102.103.104:5051/
Если после этого вы получите новую ошибку x509: certificate signed by unknown authority
В /etc/default/docker, вам необходимо указать параметры докера: DOCKER_OPTS="--insecure-registry 101.102.103.104:5051"

Затем перезапустите демон (добавьте sudo, если у вас нет прав на запуск службы Docker):

$ [sudo] service docker restart

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...