26 вересня, Вівторок, 2023
A- A A+

Як захистити UniFi Cloud Key за допомогою спеціального сертифіката SSL

Під час підключення до UniFi Cloud Key Controller вам потрібно знати IP-адресу та номер порту (за замовчуванням 8443).

У моїй ситуації IP-адреса 192.168.99.10

Якщо ви не знаєте свою IP-адресу Cloud Key, скористайтеся інструментом Ubiquiti Device Discovery Tool

З’єднання використовує протокол https (це добре), але ім’я домену відсутнє, тому стандартний сертифікат SSL запускає попередження безпеки у вашому веб-переглядачі, оскільки його неможливо перевірити. Крім того, веб-браузер не запам’ятає ваші облікові дані для входу під час наступного входу.

unifissl 1

Власне ім'я хоста:

У Cloud Key Controller ми можемо використовувати спеціальне ім’я хоста (у розділі «Network Application» -> «Network application Settings » ). Я створив субдомен «unifi» у свого постачальника DNS і вказав A-запис на IP-адресу UniFi Cloud Key. Це нове ім’я хосту дає мені зручну URL-адресу - unifi.pc-service.cv.ua

unifissl 2

Додавання сертифіката SSL
Тепер ми можемо отримати доступ до хмарного ключа за допомогою спеціального імені хоста, але нам також потрібно додати спеціальний сертифікат SSL до контролера. Сертифікат SSL має мати те саме доменне ім’я, пов’язане з полем спеціального імені хоста. Я використовував той самий SSL-сертифікат підстановки, який маю для мого загальнодоступного доменного імені.

Мої файли сертифікатів SSL мають інший формат, який нам потрібен. Нам потрібно створити архів пов’язаних сертифікатів P12 і перенести його в Cloud Key.

Щоб створити пакетний архів сертифіката P12, я використовую OpenSSL.

Також ви можете використовувати У Windows 10/11  (WSL) і Ubuntu/Kali. Не потрібно встановлювати OpenSSL для Windows.

Щоб зменшити маніпуляції створення та перенесення сертифікатів, я їх роблю безпосередньо в себе на хості де розгорнутий UniFi Cloud Key Controller

Скачую в свого постачальника сертифікатів архів з файлами, та закидую їх на сервер, або відкриваю за допомогою WSL

unifissl 3

Запускаєм команду яка створить пакетний архів сертифіката P12 із тимчасовим паролем, який ми використаємо пізніше:

openssl pkcs12 -export -inkey certificate.key -in certificate.crt -out certificate.p12 -name ubnt -password pass:myppass 

Якщо ви робили в себе на WSL сертифікат P12 то вам потрібно його мігранути зі свого локального комп’ютера на хмарний ключ Unifi.

Увімкніть новий сертифікат SSL:
Спочатку нам потрібно увійти в Cloud Key і зупинити запущені служби, та видалити старі ключі

service nginx stop
service unifi stop

Наступним кроком є ​​видалення символічного посилання та посилання на вбудований самопідписаний сертифікат SSL у Cloud Key Controller.

rm /usr/lib/unifi/data/keystore

Та видаліть такий рядок якщо він у вас є «UNIFI_SSL_KEYSTORE=/etc/ssl/private/unifi.keystore.jks » із файлу «/etc/default/unifi». Це має бути останній рядок у файлі.

Тепер ми можемо встановити новий сертифікат SSL. Ми використовуємо створений раніше тимчасовий пароль. (мій файл розташований /home/certificate.p12)

sudo keytool -importkeystore -deststorepass aircontrolenterprise -destkeypass aircontrolenterprise -destkeystore /usr/lib/unifi/data/keystore -srckeystore /home/certificate.p12 -srcstoretype PKCS12 -srcstorepass myppass -alias ubnt -noprompt

unifissl 4

Це дасть попередження, яке ви можете проігнорувати: «Попередження: сховище ключів JKS використовує власний формат…».

Перезапустіть служби nginx і unifi, які ми зупинили.

service nginx start
service unifi start

Тест і перевірка:
Давайте перевіримо, чи можемо ми тепер отримати доступ до Cloud Key Controller за допомогою нового імені хоста та спеціального сертифіката SSL.

unifissl 5

Є ще декілька способів це зробити ось лінки:

1 community.ui.com

2 namecheap.com