Добрый день! Наша компания использует собственный центр сертификации. Выход контроллера в интернет не предусмотрен политиками безопасности. Для доступа к Web необходимо использовать https. Нужна инструкция по по установке сертификата на контроллер.
Контроллер Wiren Board 8.5.3
release wb-2606 (as stable)
Добрый день.
Тут по постановке вопроса не особо понятно - что за сертфикат, для чего будет использоваться nginx. Ну и опишите цепочку доверия пожалуйста.
Сертификат нужен для доступа к WEB интерфейсу контроллера по https. В компании развернут свой центр сертификации.
Цепочка доверия состоит из трех основных уровней:
- Root CA (Root Certificate Authority /Корневой сертификат)
- Intermediate CA (Промежуточный сертификат)
End-Entity (Конечный сертификат
Положить свой сертификат (End-Entity + Intermediate, root не нужен) в /etc/ssl/sslip.pem, ключ в /etc/ssl/sslip.key, назначить chmod 600 на ключ , и создать https.conf. Можно использовать /usr/share/wb-mqtt-homeui/nginx-templates/https.conf как шаблон.
Либо: Свой файл /etc/nginx/includes/default.wb.d/https-custom.conf с listen 443 ssl и путями к своим /etc/ssl/<company>.pem|.key, а /etc/ssl/sslip.* не создавать и enable_https держать в false. Каталог явно описан как пользовательский и не трогается при обновлении пакета. Однако, если кто-то потом включит HTTPS в UI и сертификат появится, демон создаст свой https.conf, получатся два listen 443 ssl в одном server-блоке → nginx -t упадёт.
Ок. Спасибо. Будем пробовать
Все получилось, спасибо! Создали https.conf в /etc/nginx/includes. С первого раза на взлетел. Закомментировали строку ssl_dhparam /etc/ssl/dhparam.pem и все поехало.
При перезагрузке создался /var/lib/wb-homeui/nginx/https.conf . Получилось два listen 443 ssl в одном server-блоке → nginx -t упал. Закомментировали строки в /etc/nginx/includes/https.conf. Работает после перезагрузки.
https.conf
Listen configuration for Wiren Board Homeui web interface
DO NOT EDIT THIS FILE DIRECTLY! It will be overwritten by the deb package upgrade
listen 443 ssl;
taken from certbot output
server_name *.ABPKJR5C.ip.wirenboard.com;
ssl_certificate /etc/ssl/sslip.pem;
ssl_certificate_key /etc/ssl/sslip.key;
ssl_session_cache shared:le_nginx_SSL:10m;
ssl_session_timeout 1440m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA>
#ssl_dhparam /etc/ssl/dhparam.pem;
https.conf
listen 443 ssl;
server_name *.ABPKJR5C.ip.wirenboard.com;
ssl_certificate /etc/ssl/sslip.pem;
ssl_certificate_key /etc/ssl/sslip.key;
ssl_session_cache shared:le_nginx_SSL:10m;
ssl_session_timeout 1440m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA>
#ssl_dhparam /etc/ssl/dhparam.pem