Так же это исправляет ошибку «SSL handshake failed»
При настройке доступа к Home Assistant через интернет только добавив сертификат Let’s Encrypt, открыв и перенаправив порты на роутере, а так же заменив base_url в configuration.yaml на общедоступный https адрес, возникает много неудобств. Например, при пользовании в локальной сети, браузер ругается на сертификат, выданный другому домену. Или конфигуратор запускается с боковой панели через http, а нужно через https. Или наоборот. Я вообще запутался. У меня все это было, и это жутко раздражало. У меня даже Kodi перестал воспроизводить текст в речь через Google TTS. Home Assistant выдавал в логе ошибку SSL handshake failed
Все дело в не совсем правильной настройке доступа извне к Home Assistant.
Существует дополнение для HA под названием NGINX Home Assistant SSL proxy. Именно оно будет заниматься перенаправлением, вместо base_url в configuration.yaml
Начнем.
Для начала нужно установить сертификат с помощью дополнения Let’s Encrypt
Заполняем email и domains на тот, через который планируем получить доступ к home assistant через интернет. И обязательно на роутере открываем доступ к 80 порту и перенаправляем его на hassio. Это дополнение работает через этот порт, это обязательно.
Когда сертификат выпущен, нужно настроить NGINX Home Assistant SSL
Указываем свой домен и больше ничего не меняем. Сохраняем и запускаем.
Смотрим результат в логе этого дополнения, нажимая REFRESH. У меня первоначальная настройка заняла около минуты.
Так же важно убедиться, что в configuration.yaml графа base_url это ваш локальный адрес в домашней сети. По http.
На роутере нужно открыть 443 порт и перенаправить его так же на 443 к hassio. NGINX Home Assistant SSL будет сам перенаправлять на 8123 в локальную сеть.
В итоге, в домашней локальной сети мы можем пользоваться нормальным быстрым http, что для IOT устройств очень важно. А доступ из интернета к Home Assistant будет идти через https, что тоже очень важно, и адрес можно вводить без указания порта
Два непонятных момента.
1. Где вы взяли аддон Let’s Encrypt ? Неплохо бы ссылку на него. Лично я не нашел.
2. Поясните пожалуйста что именно в домене прописывать ? Это адрес, порт или workgroup ?
Let’s Encrypt это официальный аддон, https://www.home-assistant.io/addons
А в домене прописывать именно домен, например «google.com», по которому вы получаете доступ к ассистенту из интернета
Можно увидеть настройку http самого HA? и каким образом использовать ssl и https для аддонов? Я понимаю, что с опцией ingress все упростится, но не все аддоны обновят я думаю.
Настройка http: http: base_url: 192.168.2.123:port ip_ban_enabled: true А по поводу использования удаленного доступа к аддонам. Вот например до ingress я к конфигуратору получал доступ только через свою впн сеть, сейчас есть прямой доступ ( с ingress) И то, я старался держать порт закрытым, когда нужно было внести изменения в конфиги удаленно — открывал порт и подключал впн. Может и параноидально, но мне так спокойнее. Лучше в открытом доступе держать поменьше своего добра) на форуме Home Assistant полно таких чудаков — один думал что брокер тупит (свет включался и выключался), а оказалось что он был доступен из инета и без! пароля)… Подробнее »
У вас раньше была статья про Keenetic. Еще пользуйтесь? Подскажите, возможно их доменное имя использовать?
Видел на 4pda коммент о способе использовать их доменное имя, как будет время повторю и опубликую тут. А пока можете поискать в теме home assistant
Спасибо. Поищу. Активно интересовался с год назад. И писал в поддержку Keenetic и на форум Home Assistant. Так ничего и не получилось, но NGINX я не пробовал.
Сейчас более актуален Nginx Proxy Manager, там всё проще
https://github.com/hassio-addons/addon-nginx-proxy-manager
А как же защита домашней сети? Открывать 80 и 443 порт наверное не совсем хорошая идея?
Никто не мешает поднять свой vpn и подключаться через него. Намного безопаснее. У меня даже статья об этом есть
ВПН поднят. Вот только, для гугл хоум нужен доступ по ssl.
Возможно ли хотя бы 80 порт закрыть, он же нужен только для выдачи сертификата Let’s Encrypt?
Да, он для выпуска сертификата. Будет неудобно постоянно открывать порт вручную. Сейчас более интересен аддон Nginx Proxy Manager, но ему тоже нужен 80 порт ( но это не точно, сейчас не могу проверить). А вообще «безопасность» очень редко бывает равно «удобство».
Самый безопасный вариант, все же с впн. Тем более что на ПК и телефонах включается он в один клик. Тут уже для себя решите, что вам нужно.
очень было бы интересно послушать про ваш опыт использования Nginx Proxy Manager. Пока все же от ssl доступа отказаться не могу, уж очень всем домашним нравится управлять домом с помощью голосового помощника.
Там в описании дополнения гифка, в ней и есть вся инструкция) там все просто. А опыт — поставил и забыл, сертификат сам перевыпускается.
У меня аддоны Let’s Encrypt и NGINX Home Assistant SSL proxy не стартуют после перезагрузки, хотя «start on boot» включен и в логах NGINX Home Assistant SSL proxy выдает ошибку (SSL: error:02001002:system library:fopen:No such file or directory:fopen(‘/ssl/fullchain.pem’,’r’) error:2006D080:BIO routines:BIO_new_file:no such file). Подскажите почему не видит директорию?
Сейчас пользуюсь Nginx Proxy Manager (https://github.com/hassio-addons/addon-nginx-proxy-manager) Он более прост в настройке и все работает без танцев с бубном. Советую перейти на него. Инструкция в гифке на странице дополнения на гитхаб
Доброго времени суток. Duck DNS не будет при этом работать?
Здравствуйте, все будет работать. Но сейчас это дополнение уже не актуально, посмотрите в сторону аддона Nginx Proxy Manager, там вся инструкция в прилагающейся гифке. И так же будет работать с duckdns через https и в локальной сети через http
Здравствуйте, помогите пожалуйста, установил аддон, залез в web интерфейс, всё настроил как в гифке, на уровне настройки без сертификата еще не входит на страничку сервера пишет ошибка dns.
Если не сложно подскажите как настроить Nginx Proxy Manager с Duck DNS. А то не выходит настроить ни как.
Вы через duckdns смогли получить доступ к роутеру?
Да конечно. Через него Google Assistant и Алиса настроены.
Ляпнул глупость не подумав) для duckdns отдельный аддон, вместо Nginx Proxy Manager. Я не помню правда с let’s encrypt он работает в паре или сам умеет сертификат выпускать.. давно пробовал. Прошу прощения что не туда вас направил
Сам сертификаты перевыпускает
Жили как-то несколько лет назад без всяких сертификатов, сейчас приходится бегать по всяким Хострадарам сломя голову, разыскивать хостера с дешёвым или бесплатным SSl.
Таковы современные реалии, что поделать) так и живём
При настройке через nginx работает всё за исключением интеграции с яндеск станцией через yandex_smart_home. При этом напрямую при подключении сертификатов в конфиге HA работает интеграция, но лог заваливает ошибками верификации сертификата от Let’s Encrypt (python3.7), нигде на форумах решения проблемы нет. Сегодня просидел всю ночь (часов 10) в попытках решить вопрос, но пока не преуспел. Придётся видимо, вносить правки в код самого HA для того, чтобы игнорить ошибки верификации.
У меня были проблемы, аналогичные Вашим. Долго решал их, наконец разобрался. Если настроен и работает nginx, то секции http в configuration.yaml быть не должно. И при работающем nginx для работы yandex_smart_home в настройках диалога ВЕЗДЕ, где указывается ваш публичный адрес, его нужно указывать БЕЗ УКАЗАНИЯ ПОРТА (в отличие от примера в документации).
Можете помочь настроить в Home assistant привязку домена .ru? То есть чтобы по адресу домена выдавал home assistant? статический ip есть. Или на крайний случай через Duck DNS. и так и так не получается. Буду благодарен.
Как настроить https/ssl на VPS/VDS сервер, который находится в интернете? Который имеет внешний статический IP адрес.
Блин… В интернете вообще никто это не рассказывает…
Мне не требуется перенастраивать роутер, мне не нужен DuckDNS