Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1 2 След.
RSS
Как быстро настроить SSL-сертификат на Unifi Cloud Key, UniFi Network
 
После долгих поисков, тестов и ударов головой об стену я нашёл простой способ установить SSL-сертификат на Unifi Cloud Key. Надеюсь, это поможет другим, а ребята из UBNT смогут всё отредактировать и сделать нормальную инструкцию или что-то в этом духе. Вот как я успешно установил SSL-сертификат на контроллер Cloud Key:

1) Подключаемся по ssh к контроллеру.  
2) Выполняем команду: sudo su -  
3) Выполняем команду: cd /usr/lib/unifi  # создаём новый сертификат (с CSR)  
4) Выполняем команду: java -jar lib/ace.jar new_cert <hostname> <company> <city> <state> <country>  # ваш CSR создастся в /usr/lib/unifi/data  
5) Выполняем команду: cd /usr/lib/unifi/data  
6) Выполняем команду: more unifi_certificate.csr.pem  
7) Копируем и вставляем CSR на сайт вашего SSL-провайдера, чтобы заказать сертификат. Получите подписанный сертификат (я бы сказал им, что использую apache, чтобы они выдали все необходимые сертификаты).  
8) Выполняем команду: cd /usr/lib/unifi/  # если есть веб-сервер, скопируйте туда файлы сертификатов, которые вы получили от SSL-провайдера (ssls.com)  
9) Выполняем команду: wget [путь к файлу, например http://mywebsite.com/unifi/mycert.srt]  # повторите для других файлов сертификатов, чтобы главный и все промежуточные корневые сертификаты скопировались в /usr/lib/unifi/  # импортируем подписанный сертификат и промежуточные сертификаты  
10) Выполняем команду: java -jar lib/ace.jar import_cert <signed_cert> <intermediate_root_cert1> <intermediate_root_cert2> <intermediate_root_cert3>  # если всё прошло успешно, сертификат импортируется  
11) Выполняем команду: sudo service unifi restart  

Поздравляю, теперь у вас есть действительный SSL-сертификат на вашем Cloud Key! :-)
 
Этот скрипт и инструкция сделают всё за вас с Let’s Encrypt. https://www.crosstalksolutions.com/lets-encrypt-unifi/
 
Кто-нибудь знает, как установить origin cert в Dream Machine Pro? В инструкции по контроллеру найти так и не удалось :(
 
Я получаю то же сообщение об ошибке, что и @Dennis010. Пробовал с bundle cert, p7b и своим обычным подписанным сертификатом:

[2021-07-15T11:13:32,750] <launcher> ERROR system - Невозможно распарсить сертификат chadrouter.xyz.ca-bundle
java.lang.IllegalArgumentException: Неверный символ base64: a  
at java.util.Base64$Decoder.decode0(Base64.java:714) ~[?:1.8.0_275]
at java.util.Base64$Decoder.decode(Base64.java:526) ~[?:1.8.0_275]
at java.util.Base64$Decoder.decode(Base64.java:549) ~[?:1.8.0_275]
at com.ubnt.service.system.Stringsuper.?00000(Unknown Source) [ace.jar:?]
at com.ubnt.service.system.Stringsuper.o00000(Unknown Source) [ace.jar:?]
at com.ubnt.ace.Launcher.main(Unknown Source) [ace.jar:?]

[2021-07-15T11:13:34,611] <launcher> ERROR system - Невозможно распарсить сертификат chadrouter.xyz.p7b
java.security.cert.CertificateException: Невозможно инициализировать, java.io.IOException: Недочитана длина DER  
at sun.security.x509.X509CertImpl.<init>(X509CertImpl.java:198) ~[?:1.8.0_275]
at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:102) ~[?:1.8.0_275]
at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339) ~[?:1.8.0_275]
at com.ubnt.service.system.Stringsuper.?00000(Unknown Source) [ace.jar:?]
at com.ubnt.service.system.Stringsuper.o00000(Unknown Source) [ace.jar:?]
at com.ubnt.ace.Launcher.main(Unknown Source) [ace.jar:?]
Причина: java.io.IOException: Недочитана длина DER  
at sun.security.util.DerInputStream.getLength(DerInputStream.java:588) ~[?:1.8.0_275]
at sun.security.util.DerValue.<init>(DerValue.java:258) ~[?:1.8.0_275]
at sun.security.util.DerInputStream.getDerValue(DerInputStream.java:457) ~[?:1.8.0_275]
at sun.security.x509.X509CertImpl.parse(X509CertImpl.java:1835) ~[?:1.8.0_275]
at sun.security.x509.X509CertImpl.<init>(X509CertImpl.java:195) ~[?:1.8.0_275]
... 5 more  

[2021-07-15T11:13:34,821] <launcher> ERROR system - Невозможно распарсить сертификат chadrouter.xyz.crt
java.lang.IllegalArgumentException: Неверный символ base64: a  
at java.util.Base64$Decoder.decode0(Base64.java:714) ~[?:1.8.0_275]
at java.util.Base64$Decoder.decode(Base64.java:526) ~[?:1.8.0_275]
at java.util.Base64$Decoder.decode(Base64.java:549) ~[?:1.8.0_275]
at com.ubnt.service.system.Stringsuper.?00000(Unknown Source) [ace.jar:?]
at com.ubnt.service.system.Stringsuper.o00000(Unknown Source) [ace.jar:?]
at com.ubnt.ace.Launcher.main(Unknown Source) [ace.jar:?]

[2021-07-15T11:13:34,821] <launcher> ERROR system - Невозможно импортировать подписанный сертификат
java.lang.IndexOutOfBoundsException: Индекс: 0, Размер: 0  
at java.util.ArrayList.rangeCheck(ArrayList.java:659) ~[?:1.8.0_275]
at java.util.ArrayList.get(ArrayList.java:435) ~[?:1.8.0_275]
at com.ubnt.service.system.Stringsuper.o00000(Unknown Source) [ace.jar:?]
at com.ubnt.ace.Launcher.main(Unknown Source) [ace.jar:?]
 
@MarDra127 @ChristopherDB У меня есть и UDMB, и UDMP, но я застрял на шаге 3: cd /usr/lib/unifi. Ошибка: Нет такого файла или каталога. Кто-нибудь нашёл правильный каталог на UDMB и UDMP?
 
https://github.com/kchristensen/udm-le
 
Тоже самое и интересно.
 
Кто-нибудь из UI может сказать, сработает ли этот рецепт на UDM-PRO? Если нет, кто-нибудь может объяснить, как создать и установить SSL-сертификат на UDM-PRO?
 
Я заметил, что это руководство, вероятно, взято из этой темы: https://help.ubnt.com/hc/en-us/articles/212500127-UniFi-SSL-Certificate-Error#2. Я использую Cloud Key Gen 2, и несмотря на то, что импорт прошёл успешно и я перезапустил сервис (да и саму систему тоже), мой кастомный сертификат так и не появился.
 
crwjoe - Тебе не нужно сохранять "<>" при выполнении этой команды. Пример выполнения команды можно найти по ссылке https://williehowe.com/2017/07/20/install-ca-certificate-unifi/
 
Возникли проблемы с командой "java -jar lib/ace.jar new_cert <hostname> <company> <city> <state> <country>". Нужно ли оставлять угловые скобки <>, или нет? И не мог бы ты привести пример? Кстати, использую Cloud Key Gen2 Plus.
 
Привет, @mmarin-925! Либо это комплект, который шел вместе с твоим сертификатом, либо тебе нужно скачать их вручную. С уважением, Гленн Р.
 
Что такое промежуточные сертификаты?
 
Мне пришлось добавить второй цикл и убрать '\r', чтобы у меня заработало. (n — новая строка/перевод строки, r — возврат каретки)
 
Жаль, что у тебя не получилось. По крайней мере, изменились сообщения об ошибках в логах? В итоге я пришёл к своему «костыльному» решению, потому что первые попытки показали, что изменение пробелов хотя бы приводит к смене сообщений в логах. И согласен, было бы здорово иметь возможность загружать новые сертификаты через интерфейс, но с другой стороны, это может ещё сильнее скрыть настоящие проблемы, когда они всё же возникнут...
 
jpeisen, спасибо за ответ. Я последовал твоему совету, но, к сожалению, это не решило проблему. Было бы здорово, если бы в панели управления добавили кнопку «импортировать сертификат». 😀
 
У меня есть предложение — убрать переносы строк из файлов сертификатов, чтобы они были в одну строку, вот так:  
-----BEGIN CERTIFICATE-----MIIENjC[... остальная часть base64...]9OhgQ=-----END CERTIFICATE-----
Если у вас система типа UNIX, можно сделать примерно так:  
for i in *.crt ; do  
 mv $i $i.bak  
 tr -d '\r\n' $i.bak > $i  
done  
После этого попробуйте импортировать снова.  
Насколько я понял из этой статьи, декодер java.util.Base64 не любит пробелы и переносы строк в base64-строке, поэтому их нужно убрать.  
Я не программирую на Java, так что это лишь предположение.  
Все, что я действительно знаю — мне удалось импортировать сертификаты, когда я убрал переносы строк из файлов.  
-J  
P.S. Добавил "\r" в команду tr по совету @rdahlin в его следующем комментарии.
 
Есть какие-нибудь другие идеи, как это заставить работать?
 
Раньше это работало на предыдущей прошивке, я обновился вчера — и вуаля... Вот что я нашёл в заметках к релизу: правильный алиас и имя хранилища ключей — `unifi`. Если ваш кастомный SSL-сертификат теперь не работает, проверьте, что используете нужное хранилище и алиас. Раньше был баг, который позволял использовать `ubnt`, хотя это технически неправильно. Если вы найдёте на форуме упоминания о таких некорректных действиях, пожалуйста, укажите на них, чтобы мы могли исправить ситуацию. Я сделал сброс облачного ключа к заводским настройкам и начал всё с нуля.
 
Привет, @Dennis010, не мог бы ты попробовать импортировать сертификат на версии 5.8.30? С уважением, Гленн Р.
Страницы: 1 2 След.
Читают тему (гостей: 1)