Правильная настройка SSL для удаленного доступа к Home Assistant

Так же это исправляет ошибку «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, что тоже очень важно, и адрес можно вводить без указания порта

 

 

 

 

Поделитесь с друзьями

комментариев 30

  1. Два непонятных момента.
    1. Где вы взяли аддон Let’s Encrypt ? Неплохо бы ссылку на него. Лично я не нашел.
    2. Поясните пожалуйста что именно в домене прописывать ? Это адрес, порт или workgroup ?

  2. Можно увидеть настройку 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

  3. А как же защита домашней сети? Открывать 80 и 443 порт наверное не совсем хорошая идея?

    • Никто не мешает поднять свой vpn и подключаться через него. Намного безопаснее. У меня даже статья об этом есть

      • ВПН поднят. Вот только, для гугл хоум нужен доступ по ssl.
        Возможно ли хотя бы 80 порт закрыть, он же нужен только для выдачи сертификата Let’s Encrypt?

        • Да, он для выпуска сертификата. Будет неудобно постоянно открывать порт вручную. Сейчас более интересен аддон Nginx Proxy Manager, но ему тоже нужен 80 порт ( но это не точно, сейчас не могу проверить). А вообще «безопасность» очень редко бывает равно «удобство».
          Самый безопасный вариант, все же с впн. Тем более что на ПК и телефонах включается он в один клик. Тут уже для себя решите, что вам нужно.

          • очень было бы интересно послушать про ваш опыт использования Nginx Proxy Manager. Пока все же от ssl доступа отказаться не могу, уж очень всем домашним нравится управлять домом с помощью голосового помощника.

          • Там в описании дополнения гифка, в ней и есть вся инструкция) там все просто. А опыт — поставил и забыл, сертификат сам перевыпускается.

  4. У меня аддоны 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, там вся инструкция в прилагающейся гифке. И так же будет работать с duckdns через https и в локальной сети через http

      • Здравствуйте, помогите пожалуйста, установил аддон, залез в web интерфейс, всё настроил как в гифке, на уровне настройки без сертификата еще не входит на страничку сервера пишет ошибка dns.

  5. Если не сложно подскажите как настроить Nginx Proxy Manager с Duck DNS. А то не выходит настроить ни как.

    • Ляпнул глупость не подумав) для duckdns отдельный аддон, вместо Nginx Proxy Manager. Я не помню правда с let’s encrypt он работает в паре или сам умеет сертификат выпускать.. давно пробовал. Прошу прощения что не туда вас направил

  6. Жили как-то несколько лет назад без всяких сертификатов, сейчас приходится бегать по всяким Хострадарам сломя голову, разыскивать хостера с дешёвым или бесплатным SSl.

  7. При настройке через nginx работает всё за исключением интеграции с яндеск станцией через yandex_smart_home. При этом напрямую при подключении сертификатов в конфиге HA работает интеграция, но лог заваливает ошибками верификации сертификата от Let’s Encrypt (python3.7), нигде на форумах решения проблемы нет. Сегодня просидел всю ночь (часов 10) в попытках решить вопрос, но пока не преуспел. Придётся видимо, вносить правки в код самого HA для того, чтобы игнорить ошибки верификации.

    • У меня были проблемы, аналогичные Вашим. Долго решал их, наконец разобрался. Если настроен и работает nginx, то секции http в configuration.yaml быть не должно. И при работающем nginx для работы yandex_smart_home в настройках диалога ВЕЗДЕ, где указывается ваш публичный адрес, его нужно указывать БЕЗ УКАЗАНИЯ ПОРТА (в отличие от примера в документации).

  8. Можете помочь настроить в Home assistant привязку домена .ru? То есть чтобы по адресу домена выдавал home assistant? статический ip есть. Или на крайний случай через Duck DNS. и так и так не получается. Буду благодарен.

  9. Как настроить https/ssl на VPS/VDS сервер, который находится в интернете? Который имеет внешний статический IP адрес.
    Блин… В интернете вообще никто это не рассказывает…
    Мне не требуется перенастраивать роутер, мне не нужен DuckDNS

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Exit mobile version