Este tutorial mostra como configurar o acesso externo com HTTPS e manter o acesso interno com HTTP (pelo navegador e aplicativo).
Isso resolve um erro comum no aplicativo que acontecem com muitos, que é o não reconhecimento dos certificados SSL gerados para o endereço Duck DNS quanto está acessando via rede local prejudicando o acesso pelo aplicativo e a atualização dos sensores do smartphone quando conectado na rede local.
1) Verificando se você está fora de uma rede CGNAT:
- a) Verifique o endereço IP da interface WAN do seu modem (IPv4 Público):
Neste exemplo vamos assumir que seja 189.1.1.136.
- b) Acesse o site https://www.meuip.com.br/ e verifique o endereço IP que aparece.
- c) Se o endereço IP mostrado no roteador for igual ao endereço IP mostrado no site, o seu endereço IP é público e você conseguirá o acesso externo.
- d) Caso os endereços IP mostrados no roteador e no site forem diferentes você não conseguirá acesso externo usando o Duck DNS. Verifique o tópico Acesso externo ao seu Home Assistant: Diversas formas! para verificar a melhor alternativa para você.
2. Criando um domínio do Duck DNS:
- a) Acesse o site https://www.duckdns.org/ e faça login.
- b) Crie um endereço para seu Home Assistant e pegue o token que irá mostrar na tela.
Exemplo: minhacasa.duckdns.org
3) Redirecionando a porta no seu modem:
Esse procedimento varia de acordo com o modelo do modem, as principais informações são:
- Protocolo: TCP
- Porta Externa: 8443
- Porta Interna: 443
- Endereço IP Interno: 192.168.1.55 (alterar para o endereço IP do seu servidor do home assistant).Segue um exemplo de configuração no modem Askey utilizado pela VIVO (isso vai mudar de acordo com cada roteador), mas a lógica é a mesma: redirecionar a porta 8443 para a porta 443 do IP do seu Home Assistant.
4) Instalando e configurando o DuckDNS:
- a) Instalação: Acesse a Add-on Store e localize o Duck DNS, clique nele e depois no botão instalar.
Vá em Configurações, clique em Add-ons, Backups e Supervisor.
Clique em Loja de Add-ons.
Procure o Duck DNS.
- b) Configuração: Acesse a guia Configurações do Duck DNS e substitua pelo código abaixo:
Código:
lets_encrypt:
accept_terms: true
certfile: fullchain.pem
keyfile: privkey.pem
algo: secp384r1
token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
domains:
- zzzzzzzz.duckdns.org
aliases: []
seconds: 300
Substitua o token e atualize o domínio com as informações do item 2.
- c) Reinicie o add-on Duck DNS.
5) Instalando e Configurando o NGINX Home Assistant SSL proxy:
- a) Instalação: Acesse a Add-on Store e localize o NGINX Home Assistant SSL proxy, clique nele e depois no botão instalar:
Vá em Configurações, clique em Add-ons, Backups e Supervisor.
Clique em Loja de Add-ons.
Procure o NGINX.
-
b) Configuração: Acesse a guia Configurações do NGINX Home Assistant SSL proxy e faça as seguintes alterações:
- Altere o código incluindo o domínio do Duck DNS criado no item 2:
domain: dominio.duckdns.org
certfile: fullchain.pem
keyfile: privkey.pem
hsts: max-age=31536000; includeSubDomains
cloudflare: false
customize:
active: false
default: nginx_proxy_default*.conf
servers: nginx_proxy/*.conf
- Preencha a porta 443 na configuração de rede.
6) Alterando as configurações do Home Asssistant:
- a) Remova as linhas abaixo do seu arquivo de configuração (
config/configuration.yaml
) se elas existirem:
http:
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem
- b) Adicione as seguintes linhas ao seu arquivo de configuração (
config/configuration.yaml
):
http:
use_x_forwarded_for: true
trusted_proxies:
- 172.30.33.0/24
- 192.168.0.0/16 #Altere os primeiros dois números para os do endereço IP da sua rede (192 e 168).
- c) Configure as URL interna e externas de acesso ao seu Home Assistant por uma das opções a seguir:
- Opção 1: Inclua as informação pela interface em Configurações > Geral, alterando o endereço IP do seu Home Assistant e o domínio do seu Duck DNS):
- Opção 2: Adicione as seguintes linhas ao seu arquivo de configuração (
config/configuration.uaml
), alterando o endereço IP do seu Home Assistant e o domínio do seu Duck DNS):
homeassistant:
internal_url: "http://192.168.1.55:8123"
external_url: "https://dominio.duckdns.org:8443"
7) Reinicie o Home Assistant.
Reinicie o Home Assitant para as configurações entrarem em vigor.
8) Configurando o aplicativo:
Configure as URLs de acesso do aplicativo e as redes wifi:
- Acesso externo: Usar HTTPS e a porta 8443.
- Acesso Interno: Usar HTTP e a porta 8123.
- Configurar em quais redes wifi deverá ser usado a URL de acesso interno (incluir todas as redes wifi que você usa na sua casa).
8) Testes de verificação:
- Acesse o Home Assistant pela sua rede local no navegador:
- Usar HTTP e a porta 8123.
- URL a ser utilizada: http://192.168.1.55:8123/ (alterar para o IP do seu Home Assistant)Não deve apresentar mensagem de erro de certificado SSL.
- Acesse o Home Assistant externamente no navegador:
- Usar HTTPS e a porta 8443.
- URL a ser utilizada: https://dominio.duckdns.org:8443/ (alterar para o seu domínio do Duck DNS)
- Acesse o Home Assistant pela sua rede local através do aplicativo do celular:
- Usar HTTP e a porta 8123.
- URL a ser utilizada: http://192.168.1.55:8123/ (alterar para o IP do seu Home Assistant)
- Configurar redes wifi conforme item 7.Não deve apresentar mensagem de erro de certificado SSL.
- Acesse o Home Assistant externamente através do aplicativo do celular:
- Usar HTTPS e a porta 8443.
- URL a ser utilizada: https://dominio.duckdns.org:8443/ (alterar para o seu domínio do Duck DNS)
9) URL para utilização em integrações externas (exeplo: Alexa, Google, etc):
- Usar HTTPS e a porta 8443.
- URL a ser utilizada: https://dominio.duckdns.org:8443/ (alterar para o seu domínio do Duck DNS)