UniFi — Специальная настройка SSL в контроллере, использующая ассистент связки ключей (Mac OSX Keychain Assistant) и OpenSSL

В данной статье описано, как избежать проблем с web-браузером Safari и ошибок в «программном web-интерфейсе» (пример ошибки: «Этот web-сайт является небезопасным»).

Проблема выходит за рамки использования надежного сертификата SSL, выбираемого по умолчанию (если использовать только его, то ничего работать не будет). Создав свое собственное бюро сертификации CA (Certificate Authority) и заменив сертификат, назначенный по умолчанию, самоподписанным сертификатом, Вы сможете избежать ошибок web-интерфейса. В статье описана одна такая попытка (приведены все инструкции) на тот случай, если кто-то пожелает воспользоваться этими возможностями. (Кроме того и для меня будет полезно в этом случае проделать все что описано в статье еще раз!)

Перед тем как начать, сделаю небольшое примечание. Чтобы выполнить описанное в статье, Вам потребуется компьютер, работающий под управлением Mac OSX и OpenSSL.

Вкратце, шаги следующие:
1. Создать бюро сертификации СА
2. Создать сертификат, подписанный созданным СА
3. Экспортировать сертификат и личный (закрытый) ключ.
4. Подготовить файл сертификата
5. Выгрузить файл сертификата в маршрутизатор, чтобы заменить в нем прежний сертификат, который использовался по умолчанию.

Шаги процедуры

Ниже приведено подробное описание требуемых шагов:
1. Создание бюро сертификации СА
Я использовал для этого ассистент связки ключей (Keychain Assistant). Я уверен, что то же самое можно сделать с помощью OpenSSL, однако я пожелал, чтобы моя ОС доверяла этому СА еще и потому, что он создан ее средствами.

1. Откройте Keychain Assistant (Applications > Utilities > Keychain Assistant) (Программы — Утилиты — Ассистент связки ключей)
2. В меню «Keychain Assistant» (Ассистент связки ключей) выберите «Certificate Assistant» (Ассистент сертификации), а затем «Create a Certificate Authority…’ (Создать бюро сертификации)
3. На странице «Create Your Certificate Authority» (Создать собственное бюро сертификации):
a) Присвойте Вашему CA имя, запомните его
b) Identity Type = Self Signed Root CA (Самоподписанное корневое бюро сертификации, выбрано по умолчанию),
c) User Certificate = SSL Server (SSL-сервер)
d) Выберите опцию «Let me override defaults» (Разрешить мне обход назначенного по умолчанию)
e) Вариант: отмените выбор опции «Make this CA the default» (Выбирать это СА по умолчанию)
f) Вариант: измените содержимое поля «Email from» (Email от), впишите в него адрес электронной почты по своему усмотрению
g) Щелкните «Continue» (Продолжить)
4. На первой странице «Create Information» (Создание информации):
a) Serial Number (Серийный номер) = 1
b) Validity Period (days) (Срок действия, дней) = 3650 (Вы можете задать в этой строке такое число, какое Вам заблагорассудится, однако по окончании срока действия сертификата, Вам придется переделать сертификат
c) Вариант: выберите опцию «Create a CA web site» (Создать web-сайт СА) и укажите местонахождение.  (Возможно этого делать не стоит)
d) Отмените выбор опции «Sign your invitation» (Подписать ваше приглашение)
e) Щелкните «Continue» (Продолжить)
5. На второй странице «Create Information» (Создание информации):
a) Заполните поля, подходящие к Вашему случаю и перейдите на следующую страницу
6. На странице «Key Usage Extension for this CA» (Расширение использования ключа для этого СА)…
a) Оставьте все настройки по умолчанию, как есть, щелкните continue (продолжить)
7. На странице «Key Usage Extension for this CA» (Расширение использования ключа для этого СА)…
a) Оставьте все настройки по умолчанию, как есть, щелкните continue (продолжить)
8. На странице «Key Usage Extension for Users of this CA» (Расширение использования ключа для пользователей этого СА)…
a) Оставьте все настройки по умолчанию, как есть, щелкните continue (продолжить)
9. На странице «Extended Key Usage Extension for this CA» (Продление расширения использования ключа для этого СА)…
a) Оставьте все настройки по умолчанию, как есть, щелкните continue (продолжить)
10. На странице «Extended Key Usage Extension for Users of this CA» (Продление расширения использования ключа для пользователей этого СА)…
a) Оставьте все настройки по умолчанию, как есть, щелкните continue (продолжить)
11. На странице «Basic Constraints Extension for this CA» (Основные ограничения расширения для этого CA)…
a) Оставьте все настройки по умолчанию, как есть, щелкните continue (продолжить)
12. На странице «Basic Constraints Extension for users of this CA» (Основные ограничения расширения для пользователей этого СА)…
a) Оставьте все настройки по умолчанию, как есть, щелкните continue (продолжить)
13. На странице «Subject Alternate Name Extension for This CA» (Причина изменения расширения имени для этого СА)…
a) Оставьте все настройки по умолчанию, как есть, щелкните continue (продолжить)
14. На странице «Subject Alternate Name Extension for Users of This CA» (Причина изменения расширения имени для пользователей этого СА)…
a) Оставьте все настройки по умолчанию, как есть, щелкните continue (продолжить)
15. На странице «Specify a Location For The Certificate» (Укажите местонахождение сертификата)…
a) Вариант: Измените местонахождение связки ключей (Пожалуйста, запомните эту связку ключей)
b) Выберите опцию «On this machine, trust certificates signed by this CA» (На этой машине надежные сертификаты подписаны этим СА)
c) Щелкните Create (Создать)

2. Создание сертификата, подписанного созданным СА
Продолжайте с Keychain Access (Доступ к связке ключей)…

1. Перейдите к связке ключей, лежащей там, где Вы сохранили СА и отыщите свой личный ключ СА (всего будет три файла, с одним и тем же именем): сертификат, общедоступный (открытый) ключ и личный ключ)
2. Правой кнопкой мыши щелкните «Private Key» (Личный ключ) и щелкните «Create a certificate with xxxxx…» (Создать сертификат с xxxxx…)
3. На странице «Create your Certificate» (Создание Вашего сертификата)
a) Присвойте сертификату имя. Мне понравилось использовать имя хоста моего маршрутизатора (IE ubnt.local) (Запомните это имя)
b) Identity Type (Тип индивидуальности) = «Lead» (Лидер)
c) Certificate Type (Тип сертификата) = «SSL Server» (SSL-сервер)
d) Выберите опцию «Let me override defaults» (Разрешить мне обходить назначенное по умолчанию)
e) Щелкните continue (продолжить)
4. На странице «Certificate Information» (Информация сертификата)
a) Serial number (Серийный номер) = 1
b) Validity Period (days) (Срок действия, дней)  = 365 (Вы можете задать в этой строке такое число, какое Вам заблагорассудится, однако по окончании срока действия сертификата, Вам придется выпустить сертификат снова)
c) Щелкните continue (продолжить)
5. На второй странице «Create Information» (Создание информации):
a) Заполните поля, подходящие к Вашему случаю и перейдите на следующую страницу
6. На странице «Key Usage Extension» (Расширение использования ключа)…
a) Оставьте все настройки по умолчанию, как есть, щелкните continue (продолжить)
7. На странице «Extended Key Usage Extension» (Продление расширения использования ключа)…
a) Выберите опцию «SSL Server Authentication» (Аутентификация на SSL-сервере
b) Отмените опции всех остальных возможностей
8. На странице «Basic Constraints Extension» (Основные ограничения расширения)…
a) Оставьте все настройки по умолчанию, как есть, щелкните continue (продолжить)
9. На странице «Subject Alternate Name Extension» (Причина изменения расширения имени)…
a) очистить rfc822Name
b) очистить URL
c) dNSName = url/имя хоста Вашего пользовательского интерфейса gui (например, ubnt.local)
d) iPAddress = IP-адрес Вашего пользовательского интерфейса gui
10. На странице «Specify a Location For The Certificate» (Укажите местоположение сертификата)…
a) Вариант: Измените местонахождение связки ключей (Пожалуйста, запомните эту связку ключей)
b) Щелкните Create (Создать)

3. Экспорт сертификата и личного ключа.

1. Перейдите к связке ключей, лежащей там, где Вы сохранили СА и отыщите личный ключ и сертификат (всего будет три файла с одним и тем же именем: сертификат, общедоступный ключ и личный ключ)
2. Правой кнопкой мыши щелкните Certificate (Сертификат) и выберите export (экспорт)
a) Сохраните файл, используя Certificate File Format (Формат файла сертификата) (Запомните имя файла и местонахождение этого файла!)
3. Правой кнопкой мыши щелкните Private Key (Личный ключ) и выберите export (экспорт)
a) Сохраните файл, используя Personal Information Exchange (.p12) File Format(Формат файла для обмена личной информацией (.p12)) (Запомните имя файла и местонахождение этого файла!)

4. Подготовка файла сертификата
Я использовал для этого OpenSSL, хотя думаю, существуют и другие способы.
Далее Вам потребуется немного поработать с командной строкой.

1. Откройте окно терминала (Applications > Utilities > Terminal) (Программы — Утилиты — Терминал)
2. При необходимости: Измените каталог на папку, в которой лежат Ваши файлы сертификата и личного ключа

cd path_to_files

3. Конвертируйте файл сертификата в файл pem (замените имена файлов, как требуется)
4. openssl x509 -inform der -in certificate.cer -out certificate.pem
5. Конвертируйте файл личного ключа в файл pem (замените имена файлов, как требуется)
6. openssl pkcs12 -in privateKey.p12 -out privateKey.pem -nodes
7. Конкатенируйте вместе два файла (замените имена файлов, как требуется)
8. cat privateKey.pem certificate.pem > server.pem

5. Выгрузите файл сертификата в маршрутизатор
Продолжим работу с терминалом

1. Войдите по SSH на маршрутизатор

ssh router_ip_address -l your_user_name(когда будет запрошен пароль, введите его)

2. Вам необходимо подготовить папку на маршрутизаторе, так чтобы Вы были ее владельцем, либо получить соответствующие права. Я использовал мою домашнюю папку (соответствующим образом изменив имена файлов и папок)

cd /home
sudo chown your_user_name your_user_name

3. Откройте новое окно терминала (cmd+n)
4. В новом окне терминала скопируйте файл в маршрутизатор (замените имена файлов и папок, как требуется)
5. scp server.pem имя_Вашего_пользователя@ip_адрес_маршрутизатора:~/server.pem
(когда будет запрошен Ваш пароль, введите его)
6. В оригинальном окне терминала измените владельца файла

sudo chown www-data:www-data ~/server.pem

7. Как вариант: в оригинальном окне терминала сделайте резервную копию сертификата по умолчанию

sudo cp /etc/lighttpd/server.pem ~/server.pem.backup

8. В оригинальном окне терминала перепишите сертификат по умолчанию

sudo cp ~/server.pem /etc/lighttpd/server.pem

9. Задайте права для нового файла сертификата

sudo cp ~/server.pem /etc/lighttpd/server.pem

10. Перезапустите lighttpd

sudo /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf

11. Выполните тест!

Другие статьи по этой теме

 

Все авторские права и другие права интеллектуальной собственности на данные материалы являются собственностью Компании «Рутстор» (ROOTSTORE). При использовании данного материала ссылка на сайт rootstore.ru обязательна.

Авторизация
*
*
Регистрация
*
*
*
*
Генерация пароля
Заказать звонок



Купить в 1 клик