Импортируйте собственный корневой сертификат CA в контейнер Docker

Я использую бесплатный веб-сервер на компьютере CentOS. Он также работает как Центр сертификации.

Несколько HTTP-сервисов работают с сертификатами, выданными FreeIPA, и все работает хорошо.

У меня есть другой сервер CentOS, подключенный к моему домену, на котором правильно настроен корневой сертификат FreeIPA. Когда я curl https://freeipa.example.com непосредственно с этого сервера я не сталкиваюсь с какими-либо проблемами.

Но на этом сервере также работают контейнеры Docker, у которых, похоже, возникают проблемы с подключением к серверам httpd, работающим с моими сертификатами FreeIPA.

Когда я бегу curl https://freeipa.example.com У меня есть следующая проблема: curl: (60) SSL certificate problem: unable to get local issuer certificate.

Похоже, что Docker не заботится о корневом сертификате, который устанавливается на сервере CentOS для подключения к FreeIPA.

Как я могу решить эту проблему?

Вам нужно будет передать центр сертификации в контейнер и добавить его в список доверия контейнера. Это может быть сделано во время выполнения (с помощью действия контейнера, такого как сценарий bash или powershell, или при интерактивном запуске контейнера) или путем создания обновленного образа (с docker build в файле dockerfile или docker commit на работающем контейнере, который был изменен в соответствии с вашими потребностями).

Если я правильно понимаю, хост docker доверяет сертификату, а контейнер - нет? Если это так, вам нужно будет передать центр сертификации в контейнер и добавить его в список доверия контейнера. Это можно сделать во время выполнения или путем создания обновленного образа.

вы правы. Я обнаружил это позже, но я позволю вам сделать из этого ответ :).