Поиск по базе знаний

Использование DuckDNS для бесплатного SSL-сертификата в HA

Многие домашние интернет-провайдеры предоставляют пользователям динамические IP-адреса, которые меняются при каждой перезагрузке роутера или по истечении определенного времени. Для интеграции умного дома с голосовым помощником Алисой это создает серьезную проблему: облако Яндекса должно всегда знать точный адрес вашего сервера.

Решением этой проблемы является использование технологии DDNS (Dynamic DNS). Сервис DuckDNS предоставляет абсолютно бесплатные доменные имена третьего уровня в зоне duckdns.org и позволяет автоматически обновлять запись об IP-адресе вашего домашнего роутера. Кроме того, официальный аддон для Home Assistant содержит встроенный клиент Let’s Encrypt, который генерирует доверенные SSL-сертификаты безопасности для защищенного HTTPS-соединения.

Регистрация на DuckDNS и получение токена

Перед началом настройки в самом Home Assistant вам необходимо зарегистрировать свой домен.

  1. Откройте веб-браузер и перейдите на официальный сайт сервиса по адресу duckdns.org.
  2. Авторизуйтесь на сайте, используя любую удобную учетную запись (например, GitHub, Google или Reddit).
  3. В разделе subdomains введите желаемое имя для вашего умного дома в пустое текстовое поле (например, myhomealice) и нажмите кнопку add domain. Если имя свободно, оно появится в списке ниже.
  4. В верхней части страницы найдите строку token — это ваш секретный уникальный ключ авторизации. Скопируйте его, он понадобится на следующем этапе.

IMPORTANT

Секретный токен DuckDNS является ключом доступа к управлению вашим доменом. Никогда не передавайте его третьим лицам и не выкладывайте в открытый доступ на форумах или в репозиториях.

Настройка официального дополнения в Home Assistant

Аддон DuckDNS выполняет двойную функцию: он постоянно сообщает серверам DuckDNS актуальный внешний IP-адрес вашей сети и автоматически перевыпускает SSL-сертификаты безопасности каждые 3 месяца.

  1. Откройте веб-интерфейс Home Assistant, перейдите в меню Настройки ➡️ Дополнения ➡️ Магазин дополнений.
  2. Найдите в поиске Duck DNS и нажмите Установить.
  3. После завершения установки перейдите на вкладку Конфигурация аддона.
  4. Переключите редактор в текстовый режим (YAML) и заполните следующие поля:
    domains:
      - myhomealice.duckdns.org  # Ваш зарегистрированный домен
    token: 12345678-abcd-1234-abcd-1234567890ab  # Ваш скопированный токен
    aliases: []
    lets_encrypt:
      accept_terms: true
      certfile: fullchain.pem
      keyfile: privkey.pem
    seconds: 300
  5. Сохраните изменения и перейдите обратно на вкладку Инфо.
  6. Запустите дополнение и откройте вкладку Логи. Убедитесь, что процесс получения сертификата прошел успешно. В логах должно появиться сообщение + Certificate active.

TIP

Генерация сертификата Let’s Encrypt при первом запуске аддона может занять от 1 до 3 минут. Не перезапускайте аддон во время этого процесса, иначе запрос к серверам Let’s Encrypt может заблокироваться по таймауту.

Проброс сетевого порта на роутере

Для работы шифрованного соединения и проверки подлинности домена Let’s Encrypt требуется, чтобы запросы на порт 443 из интернета перенаправлялись на порт 8123 вашего сервера Home Assistant.

  1. Откройте панель настроек вашего роутера.
  2. Перейдите во вкладку Перенаправление портов (NAT/Forwarding).
  3. Создайте новое правило:
    • Внешний порт: 443 (протокол TCP)
    • Локальный IP-адрес: IP вашего Home Assistant (например, 192.168.1.100)
    • Локальный порт: 8123 (порт Home Assistant)
  4. Сохраните настройки роутера.

Если ваш провайдер использует технологию серого IP-адреса (CGNAT), то прямой проброс портов работать не будет. В этом случае вам придется использовать альтернативные методы организации туннелей, такие как Cloudflare Tunnels или специальную интеграцию Yandex Cloud, которая работает без проброса портов.

Активация SSL в конфигурации Home Assistant

Последним шагом является указание системе использовать полученные сертификаты для шифрования трафика.

  1. Используя дополнение File Editor, откройте конфигурационный файл configuration.yaml вашего сервера.
  2. Добавьте или измените секцию http следующим образом:
    http:
      ssl_certificate: /ssl/fullchain.pem
      ssl_key: /ssl/privkey.pem
  3. Сохраните файл и выполните перезапуск Home Assistant через меню Настройки ➡️ Система ➡️ Управление сервером.

Перед перезапускам обязательно проверьте конфигурацию на ошибки с помощью встроенного валидатора, чтобы избежать ситуации, когда Home Assistant не сможет запуститься из-за неверного пути к файлам сертификатов.

CAUTION

Обратите внимание, что после перезапуска ваш сервер перестанет отвечать на обычные запросы по HTTP. Теперь для локального входа по IP-адресу или домену вам нужно будет обязательно вводить https:// перед адресом (например, https://192.168.1.100:8123). Браузер выдаст предупреждение о небезопасном сертификате при входе по локальному IP — это нормально, просто подтвердите вход.

Проверка работоспособности и продление сертификатов

После выполнения всех шагов вы можете проверить доступность вашего Умного Дома, введя адрес вашего поддомена в браузере (например, https://myhomealice.duckdns.org). Вы должны увидеть стандартное окно авторизации Home Assistant, а в адресной строке появится значок закрытого замка, подтверждающий наличие защищенного соединения SSL.

Срок действия бесплатного сертификата от Let’s Encrypt составляет 90 дней. Вам не нужно продлевать его вручную: встроенный скрипт в дополнении DuckDNS автоматически проверяет оставшийся срок службы и запрашивает обновление за 30 дней до окончания действия сертификата. Главное условие для успешного продления — запущенное дополнение и открытый порт 443 наружу в момент проверки.

С настроенным безопасным внешним адресом вы полностью готовы к интеграции голосового помощника Алисы со сложными кастомными устройствами. Для создания собственных сценариев автоматизации изучите наше руководство по созданию кастомных навыков для Алисы, где подробно рассказано, как связать внешние вебхуки с виртуальными выключателями и отправлять любые датчики из вашей локальной сети прямо в Умный Дом Яндекса. Это позволит вам настроить персональные правила обработки интентов, отправлять JSON-ответы в диалогах и превратить обычную Яндекс Станцию в полноценный центр голосового управления.

Инструкция по настройке

1

Регистрация домена DuckDNS

Авторизуйтесь на сайте DuckDNS через GitHub/Google и зарегистрируйте свой бесплатный поддомен в зоне duckdns.org.

2

Установка аддона DuckDNS

В Home Assistant установите официальное дополнение DuckDNS и заполните конфигурационный файл, указав домен и токен.

3

Настройка проброса портов

Перенаправьте внешний порт 443 (или иной выбранный) на локальный IP-адрес Home Assistant на порту 8123 вашего роутера.

4

Интеграция SSL в Home Assistant

Пропишите пути к сгенерированным Let's Encrypt SSL-сертификатам в секции http файла configuration.yaml и перезагрузите систему.