
В настоящее время я внедряючастный сервер Docker Registry, nginx
настроенный на безопасную пересылку https
трафика на работающий экземпляр Docker Registry (т.е. docker-compose
)в частной сети (с настроенными DNS, DHCP).
У меня вся установка работает как и ожидалось, но пришлосьсоздавать самоподписанные сертификатытак как мне не разрешено использовать«Давайте зашифруем»(жесткое требование). Я развернул файл .crt
на /usr/local/share/ca-certificates
всех хостах Ubuntu в моей сети и обновил хранилище сертификатов (например, через sudo update-ca-certificates -f
).
Однако даже если сертификат «доверенный» (из шага выше), сертификат все равно зарегистрирован как «самозаверяющий» иЕдинственный способ заставить Docker Registry работать полноценно — это создать файл, /etc/docker/daemon.json
, со следующим содержимым (предполагается, что мой экземпляр Docker Registry запущен на registry
хосте в моем lan
домене):
{
"insecure-registries" : [ "registry.lan:5000" ]
}
Это приводит к сбою некоторых функций (например, некоторые плагины не будут работать, если включены «небезопасные реестры»).
Вопрос
Как мне настроить свою частную сеть (предполагая, что она большую часть времени даже не подключена к Интернету) так, чтобы все машины в сети «полностью доверяли» сертификату (т. е. чтобы сертификат был «публично доверенным» среди хостов в локальной сети)?то есть какую команду я могу запустить или файл конфигурации я могу настроить?
Это кажется возможным решением: создать CA и ключ сервера в моей частной сети.
Спасибо.
решение1
Недостаточно просто добавить ваш сертификат в /usr/local/share/ca-certificates
. Вам нужно убедиться, что он прочитал chmod для других, а также добавить его относительный путь в /usr/local/share/ca-certificates
.
Допустим, ваш сертификат/usr/local/share/ca-certificates/self-signed/yourcert.crt
Вам следует отредактировать/etc/ca-certificates.conf
sudo редактор /etc/ca-certificates.conf
и добавьте его относительный путь, если /usr/local/share/ca-certificates/
быть точным, относительно.
Итак, это должно быть что-то вроде:
самоподписанный/yourcert.crt
Тогда беги
sudo обновление-ca-сертификатов
В выводе команды выше вы должны увидеть 1 добавленный сертификат.
Имейте в виду, что этот сертификат будет доверенным только на этом конкретном хосте. Вам также нужно развернуть его в ваших контейнерах Docker, если вы хотите, чтобы он был доверенным внутри.