Как в ubuntu добавить Root CA от latsencrypt.org чтобы docker pull мог скачать его из собственного реестра образов?
Здравствуйте!
Подскажите, пожалуйста, как решит следующую проблему:
При попытке скачать образ из собственного реестра образов docker при помощи команды docker pull возникает ошибка: "x509: certificate signed by unknown authority"
Реестр настроен на использование ssl, используется сертификат, полученный от LetsEncrypt
Windows этот сиртификат определяет как валидный, docker desktop на windows без проблем скачивает образы из этого реестра.
Как docker в ubuntu проверяет валидность ssl: сам или использует для этого какие-то сторонние средства, например, средства которые предоставляет ему ububntu?
Какие средства использует конкретно мой ubuntu: собственные или сторонние?
Как определить, каким именно корневым сертификатам доверят docker?
Как добавить новый сертификат в список доверенных сертификатов в ubuntu, чтобы докер начал доверять сертификатам, используемым реестром образов docker?
Я не являюсь специалистом в администрировании ubuntu.
Я перепробовал множество методов, но ошибка все равно повторяется. дайте, пожалуйста, еще методов.
Спасибо.
Прочитав документацию https://docs.docker.com/engine/security/certificates/
сделал вывод, что докер при попытке скачать образ из репозитория, расположенного по адресу my-https.registry.example.com нужно создать в папке /etc/docker/certs.d/ папку "my-https.registry.example.com", в которую скопировать файл ca.crt который является сертификатом в формате PEM корневого CA, который выдал сертификат для сервера репозитория образов.
Я заменил имя "my-https.registry.example.com" на то, которое используется моим репозиторием, перезагрузил сервер, после чего выполнил команду docker pull my-https.registry.example.com/myimagename, но все осталось как раньше: сообщение об ошибке: "Error response from daemon: Get https://my-https.registry.example.com/v2/: x509: certificate signed by unknown authority"
как еще можно продиагностировать эту проблему, чтобы выявить, чего не хватает докеру для веры в CA, который подписал сертификат сервера my-https.registry.example.com?
Я скопировал в папку /etc/docker/certs.d/my-https.registry.example.com файлы certificate.crt и ca_bundle.crt, которые получил от letsencrypt (т.е. те, который содержат открытые ключи CA и моего домена), перезапустил сервер и докер стал доверять моему репозиторию.
Спасибо всем, кто откликнулся, проблема, можно сказать, решена.
Решение оказалось таким:
в папке /etc/docker/certs.d создать папку по имени совпадающую с именем хоста репозитория образов (например, my-https.registry.example.com) и в нее скопировать полученные от LetsEncrypt сертификаты с открытым ключом, это обычно файлы certificate.crt и ca_bundle.crt