Постановка задачи
Обеспечить доступ до веб-интерфейса ECCM по защищённому протоколу HTTPS.
Решения
Порт 80 должен остаться открытым для IP-сети управления оборудованием, до которого ECCM имеет доступ по L3. Это необходимо для скачивания программного обеспечения на устройства по HTTP. Подробнее в разделе Векторы сетевого взаимодействия.
Решение 1
Получить в Центре Сертификации (ЦС) SSL-сертификат (в формате .crt или .cer) по IP-адресу или доменному имени, используемому веб-интерфейсом ECCM, и установить его вместе с ключом шифрования (в формате .key) для сервисов ECCM.
SSL-сертификат должен содержать Subject Alternative Name (SAN) с DNS веб-интерфейса ECCM или его IP-адресом.
Решение 2
Сгенерировать и установить самоподписанный SSL-сертификат с ключом шифрования средствами скрипта generate-cert.sh, входящего в установочный архив ECCM.
Примеры настройки
Пример для решения 1
Для установки загрузите полученный SSL-сертификат (в формате .crt или .cer) и ключ шифрования (в формате .key) на сервер ECCM в каталог скрипта запуска ECCM, в подкаталог ./eccm/cert/ (если конечного каталога cert нет в системе, создайте его).
Измените блок HTTPS в конфигурационных файлах:
- <Путь до каталога со скриптом запуска ECCM>/eccm/.env
# HTTPS CERT_PATH=./cert/<имя файла SSL-сертификата в формате .crt или .cer> KEY_PATH=./cert/<имя файла ключа шифрования в формате .key> KEY_PASS_PATH=./cert/key.pass ECCM_WEB_HTTPS_PORT=443
Если ключ шифрования дополнительно защищён паролем, то пароль от ключа необходимо прописать в файлы ./eccm/cert/key.pass (если указанного файла нет в системе, создайте его).
Перезапустите ECCM командами:
sudo ./compose-tools.sh --stop sudo ./compose-tools.sh --https --start <IP-адрес сервера или его доменное имя>
Пример для решения 2
Для генерации самоподписанного SSL-сертификата с ключом шифрования запустите скрипт generate-cert.sh, входящий в установочный архив ECCM:
sudo ./generate-cert.sh --domain <IP-адрес сервера или его доменное имя>
Можно заполнить дополнительные поля при генерации SSL-сертификата используя опции:
--country <country> - страна (латинскими буквами)
--state <state> - регион (латинскими буквами)
--city <city> - город (латинскими буквами)
--organization - организация (латинскими буквами)
--days <days> - срок действия сертификата (в количестве дней)
Перезапустите ECCM командами:
sudo ./compose-tools.sh --stop sudo ./compose-tools.sh --https --start <IP-адрес сервера или его доменное имя>
Настройка DNS в Docker
Если на сети используется локальный DNS-сервер (особенно актуально для DNS-серверов с настройкой dns-search), добавьте следующие опции в настройки демона docker /etc/docker/daemon.json (если указанного файла нет в системе, создайте его):
{ "dns": ["IP-адрес-dns-сервера"], "dns-search":[ "test.loc" ], "dns-opts" : [ "ndots:1" ] }
Перезапустите демон docker и сервисы ECCM:
sudo ./compose-tools.sh --stop sudo service docker restart sudo ./compose-tools.sh --https --start <IP-адрес сервера или его доменное имя>