Очередная инструкция как настроить внешний HTTPS доступ в Hass.io.
У вас должен быть статический или динамический "белый" IP-адрес.
Статью для "серого" IP-адреса я когда-нибудь напишу...
1. Заводим своему дому имя*
Если ваш роутер (mikrotik, keenetic, d-link, asus) или NAS (synology) уже поддерживают свои собственные DDNS - можете завести доменное имя там.
Если не поддерживают, регистрируемся тут: https://www.duckdns.org/
2. Пробрасываем порты на роутере
В настройках роутера пробрасываем порты 80 и 443 на локальный IP-адрес вашего Hass.io (на порты 80 и 443 соответственно). Как это делать читайте в инструкциях к своему роутеру.
Обязательно нужны оба порта и именно эти.
3. Устанавливаем аддон
Добавляем новый репозиторий аддонов Hass.IO:
https://github.com/bestlibre/hassio-addons
И устанавливаем аддон:
Caddy Proxy
4. Настраиваем и запускаем аддон
Serving HTTPS on port 443 https://myhome.duckdns.org Serving HTTP on port 80 http://myhome.duckdns.org
5. Пользуемся
Да, это действительно всё. Уже можно пользоваться. Ваш дом уже доступен по адресу:
https://myhome.duckdns.org/
Никаких портов в адресе указывать не нужно.
Никакие китайцы не будут к вам ломиться, потому что без указания доменного имени им будет выдаваться пустая страница.
Ваш Home Assistant уже готов к подключению к Яндекс Алисе или Google Ассистенту.
http://myhome.duckdns.org/ автоматически будет перенаправлять на https-версию.
Сертификат сам будет продлеваться, вам даже не нужно знать где лежат файлы cert и key.
Вы можете не знать слова HTTP2, GZIP, SSL, но это всё уже у вас есть, настроено правильно и работает.
Секция http в файле configuration.yaml вообще не нужна! Можете полностью её закоментировать.
Вы всё ещё можете отрыть свой HA по локальному IP-адресу:
http://192.168.1.123:8123/ тут указание любимого порта 8123 обязательно, протокол обязательно http.
PS
1. Рекомендую включить 2х факторную авторизацию. Это делается в профиле пользователя в HA. Ключи может генерировать мобильное приложение Google Authenticator.
2. На некоторых роутерах HA не откроется в локальной сети по доменному имени. Можете погуглить Hairpin NAT для своего роутера. Лично я прописал статический DNS адрес на роутере, где привязал публичное доменное имя к локальному IP-адресу. Но не все роутеры так умеют.
3. Редким компонентам всё же нужно знать публичное доменное имя HA, например сервису cast.show_lovelace_view компонента cast. Тогда можете вернуть секцию http c base_url: https://myhome.duckdns.org/
4. Если вы выбрали DDNS от duckdns.org и у вас динамический IP-адрес - к сожалению эта версия аддона не поддерживает обновление адреса при его смене. В этом случае вы можете установить второй аддон - Duck DNS и использовать его только для обновления IP-адреса. При этом отключить в нём обновление сертификата с помощью accept_terms: false
А что делать когда 80 порт занят?)
Страдать :)
Есть способы получить сертификат без 80 порта, но я ими не владею.
Для официального аддона https://github.com/home-assistant/hassio-addons/blob/master/duckdns/README.md">DuckDNS не требуется открытие портов, т.к. верификация проводится другим способом (DNS-01 challenge), иначе это было бы проблемой при домашнем использовании.
Caddy такое тоже поддерживает. Но версия из этого аддона, к сожалению, нет.
Документация подсказывает, что хватит одного любого из этих портов. Но рекомендуют всё же оба
https://caddyserver.com/v1/docs/automatic-https#faq">https://caddyserver.com/v1/docs/automatic-https#faq
Я не экспериментировал.
Хватило одного 443
Супер! 80й порт нужен только для автоматического перенаправления на 443. Трафик по нему не ходит.
P.S. нашел решение с помощью других аддонов hass.io
DuckDNS+Nginx, инструкция здесь:
https://help.konnected.io/support/solutions/articles/32000023964-set-up-hass-io-with-secure-remote-access-using-duckdns-and-nginx-proxy">https://help.konnected.io/support/solutions/articles/32000023964-set-up-hass-io-with-secure-remote-access-using-duckdns-and-nginx-proxy
Очень хочется узнать, как с "серым" ip адресом подключить!
Через облако
Keendns не получается никак настроить. Он свой сертификат подставляет.
роутер какой?
Keenetic giga kn-1010
Все прекрасно работает через облако Keendns. Билайн, серый ip. Гугл ассистент и алиса работают.
mykeenetic.ru, но его собираются отключить. А на
доменах с автоматической защитой SSL-сертификатами
у меня не работает.
keenetic.pro с SSL нормально работает. Минус - ХА и роутер доступны по адресу из инета.
Для
чтобы отключить SSL-сервера и тем самым освободить работу TCP\443,
потребуется поочередно ввести команды в CLI:
no ip http ssl enable
no ip http ssl redirect
ip http security-level public
system configuration save
У меня заработало.
Здравствуйте, вы еще используете способы с keenetic? не могли бы помочь в некоторых настройках?
Здравствуйте, вы еще используете способы с keenetic? не могли бы помочь в некоторых настройках?
Если на эту статью кто-то набредет в 2021, то у Keenetic сейчас не только облако, но и реверс прокси походу (лишь предполагаю).
В настройках есть возможность указать поддомен, веб-сервис homeassistant и порт на котором он работает (8123).
При любых запросах извне по http Keenetic редиректит на свой https со своим сертификатом, а уже оттуда тихонечко на http HA.
Т.е. на самом HA https можно не поднимать, Caddy не ставить
Nginx
-домен.
У меня только этот способ получился. Так как провайдер дает серый ip, приобрести белый у мобильных операторов не реально на физ лицо.
Пользовался KeenDNS , но постоянно переподключается, править конфиги не получается.
А можно поподробнее, а желательно подробную статью))
Подойдет ли этот способ для использования Яндекс Алисы в home assistant?
Удалось подключиться с серым ip?
А не проще просто взять статический IP у провайдера?
Там сложнее. Нужно обязательно арендовать VDS/VPS сервер.
для мобильных роутеров это единственный вариант?
Вот такой вот вариант есть https://sprut.ai/client/blog/2487">https://sprut.ai/client/blog/2487
Добрый день. Все сделал по инструкции шаг за шагом, но https нет доступа, в чем может быть проблема?
Только что установил чистый (не докер) Caddy для докер контейнера ХА, без всяких аддонов и хассио.
Если делать первый раз, то густой лес. Половину дня убил на штудирование инета по данной теме. Но результат радует. А эпопея началась с того, что у меня при включении в конфиг файл ХА секции http с сертами, отваливалось TTS у колонок гугл хом мини. Caddy рекомендую!
Сделал, вроде все норм, и по https могу зайти, но при объединении аккаунтов яндекс станции и предварительно созданного HA - яндекс ругается на то, что "сайт не может обеспечить безопасное соединение"
Столкнулся с аналогичной проблемой. Вам удалось её решить?
Сделал всё как в статье, но доступа в локальной сети по wifi нет, со всех устройств через оф. приложение. С браузера доступ есть. Предполагаю что всему виной двухфакторная аутентификация. Есть у кого идеи как решить проблему?
А так статья огонь, получилось всё без проблем с первого раза!
После того как по непонятным мне причинам аддон DuckDNS перестал видеться снаружи, хотя в логах все ок, перешел на Keenetic.
В Keenetic очень просто все, никаких портов не открывал, только назначил домен на адрес ХА:8123 и все ок работает, Или что тут не так?
Ох, сколько народа сидит без публичного IP у провайдеров ... 10.ххх
Роутер микротик, включил ddns, открыл 8123, 80 и 443 порт.
Установил caddy proxy, настроил, запустил. В логах ошибка:
Кто-нибудь сталкивался?
При попытке открыть по https - получаю ошибку
Обновил HA на
core-2021.7.0 и теперь не зайти по доменному имени, пишет 400: Bad Request. Как то можно исправить?
В чате подсказали, что помогает:
Для тех кто не понял, что с этим делать - вставляем эти строки в файл конфигурации yaml :)