Continuo cuidando do meu assistente de casa. Nesta semana, substituí minha configuração unique pelo Cloudflare Tunnel.
Este é o sexto publish da série My Journey With Residence Assistant Focus. Outras postagens incluem:
A configuração inicial
Meu uso do assistente doméstico exigia acesso externo desde o início.
Eu consegui isso em duas etapas:
- Eu criei um subdomínio de
frankel.ch
que apontou para o IP externo do meu roteador. - No meu roteador, abri uma porta dedicada. Por sua vez, o roteador encaminhou solicitações ao meu assistente de casa.
A próxima ação foi garantir conexões por meio de um certificado SSL. Inicialmente, apontei para o MTLS, mas não consegui alcançá -lo porque o aplicativo iPhone HA não o suporta. No entanto, a comunicação criptografada com meu servidor period um requisito difícil.
A boa notícia é que os momentos em que os certificados SSL eram um recurso de luxo se foram. Vamos criptografar os disponibiliza para todos gratuitamente.
Vamos criptografar emitidos certificados por meio de uma API automatizada com base no protocolo ACME.
Para interagir com a API Let’s Encrypt e obter um certificado, é necessário um software program chamado “cliente acme”. Nenhuma parte do processo para obter um certificado acontece neste website, o que é apenas informativo.
— Começando
O HA fornece um rico ecossistema adicional: um deles integra, vamos criptografar. O complemento funciona perfeitamente, mas é específico em sua abordagem: os complementos de HA geralmente funcionam continuamente. Com este, você gera um certificado iniciando o complemento.
Let’s Encrypt adota uma visão opinativa sobre quanto tempo os certificados são válidos. O período de validade é de 90 dias e nenhuma exceção é permitida. Além disso, o website oficial Let’s Crypt recomenda girar seu certificado a cada 60 dias.
Isso é muito Inconveniente quando um certificado instalado expira – não me pergunte como eu sei. Até este ano, vamos criar e -mails de lembrete enviados algum tempo antes da knowledge de validade; Eles não fazem mais isso. Para evitar que isso aconteça novamente, criei uma automação de HA para iniciar o complemento para mim. Curiosidade: Ao implementar o Cloudflare Tunnel, notei que havia feito mal a automação!
Enquanto essa configuração funciona em geral, duas coisas estavam me incomodando:
- Eu já uso a porta HTTPS do meu roteador para outro domínio. Meu roteador não consegue gerenciar dois subdomínios na mesma porta. Por isso, tive que abrir outra porta. É mais difícil lembrar uma porta do que um domínio.
- A automação é uma peça em movimento adicional, que pode falhar, como mencionado acima. Prefiro manter a automação focada na parte da casa, em vez da infraestrutura subjacente.
Cloudflare Tunnel para assistente de casa
Eu tropecei na integração do túnel Cloudflare enquanto navegava /r /homeasse uma manhã e percebi que isso resolveria meus problemas. Algumas razões atraentes surgiram:
- Eu já sou um usuário feliz Cloudflare
- Com o Cloudflare Tunnel, você não precisa abrir uma porta no seu roteador
- O complemento HA é morto simples de usar
- Eu nunca experimentei o CloudFlare Tunnel, e esse é um novo brinquedo brilhante com quem eu queria brincar!
O Cloudflare Tunnel fornece uma maneira segura de conectar seus recursos ao CloudFlare sem um endereço IP publicamente rotável. Com o túnel, você não envia tráfego para um IP externo – em vez disso, um daemon leve em sua infraestrutura (
cloudflared
) Cria conexões exclusivas para saída com a rede international da Cloudflare. O túnel Cloudflare pode conectar servidores da Internet HTTP, servidores SSH, desktops remotos e outros protocolos com segurança ao CloudFlare. Dessa forma, suas origens podem servir o tráfego através do CloudFlare sem ser vulnerável a ataques que ignoram o CloudFlare.Consulte nossa arquitetura de referência para obter detalhes sobre como implementar o CloudFlare Tunnel em sua infraestrutura existente.
O CloudFlared estabelece conexões de saída (túneis) entre seus recursos e a rede international da CloudFlare. Os túneis são objetos persistentes que direcionam o tráfego para os registros DNS. Dentro do mesmo túnel, você pode executar tantos processos ‘CloudFlared’ (conectores) conforme necessário. Esses processos estabelecerão conexões com o CloudFlare e enviarão tráfego para o knowledge middle mais próximo do CloudFlare.
– Cloudflare Tunnel
O complemento da comunidade para gerenciar a integração do túnel Cloudflare no HA é Cloudflued. Depois de adicioná -lo ao seu HA, você pode configurá -lo de duas maneiras:
- O jeito que morto: você outline o subdomínio e deixa o assistente cuidar do resto. Ele cria um URL que o leva ao Cloudflare, você se autentica e o assistente trabalha sua mágica, incluindo baixar e executar o agente.
- A maneira avançada: você cria o túnel no Cloudflare, obtém o token e configura o complemento manualmente.
Eu escolhi o primeiro e funciona como esperado. No entanto, cometi um grande erro: defina o mesmo subdomínio que o atual, e o complemento substitui a configuração existente sem aviso prévio. Lição aprendida – tenho cuidado para definir um novo subdomínio!
O próximo passo é configurar o proxy em Ha se você não o fez antes. Por padrão, o HA descarta os pedidos proxies. Para deixar cloudflared
(O processo, não o próprio CloudFlare) Solicitação de proxy, precisamos permitir explicitamente e especificar quais IPs permitimos.
http:
server_port: 443 #1
ssl_certificate: /ssl/fullchain.pem #1
ssl_key: /ssl/privkey.pem #1
use_x_forwarded_for: true
trusted_proxies:
- 172.30.33.0/24 #2
- Configuração herdada para o complemento Let’s Encrypt
- Permitir solicitações do native
cloudflared
processo
Neste ponto, a configuração funciona. O envio de solicitações para o novo domínio atingirá o HA through túnel Cloudflare. Eu poderia ter parado por aí, mas os leitores astutos terão percebido que eu só terminei metade do trabalho: o complemento Let’s Encrypt ainda está lá. Não faz sentido usar o SSL dentro do túnel.
Removendo Let’s Encrypt Addamo
A idéia é remover o complemento Let’s Crypty, bem como limpar a configuração SSL. Para simplificar, não é possível remover o último como é.
Sugiro que você desative o acesso remoto primeiro e depois remova a configuração SSL e só então instale o Cloudflare. Não, porque queria poder reverter, se necessário. Se estiver interessado nos meus problemas, fique à vontade para ler.
Habilite o SSH primeiro!: Se você começar a mexer com o acesso HTTP, há uma grande likelihood de você estará bloqueado na interface do usuário. Se você perder o acesso, sua única opção será uma redefinição de fábrica. Antes de qualquer alteração crítica de configuração, verifique se você tem uma alternativa. Pode ser a interface do usuário por meio de uma rede native, mas o SSH é uma aposta mais mais segura. HA fornece um complemento SSH. Instale -o antes de qualquer outra coisa.
O complemento cloudfluido usa o ambiente existente para criar sua configuração quando ele inicia, ou sejaSSL e Port. Ele configura os mesmos parâmetros no túnel Distant Cloudflare. Você não pode mudar nenhum deles. No lado do CloudFlare, diz que é gerenciado localmente. No lado do HA, não há como acessar os parâmetros de configuração, pelo menos aqueles que governam o túnel.
Fui ao Console Cloudflare e migrei para uma configuração remota. Cuidado que não há como voltar: uma vez gerenciado remotamente, você não pode migrar de volta para uma configuração native. Vá para o Nome do host público guia, e na linha do homeassistant
Túnel, clique em Editar. Aqui está a configuração:
O homeassistant
O domínio é interno ao HA: é um valor definido. Porque cloudflared
Funciona em HA, você deve mantê -lo como está. Além disso, a porta HA padrão é 8123.
Para usar a nova configuração, vá para o Visão geral Guia do seu túnel. No Instale e execute um conector seção, localize as linhas de comando e copie o valor do token após set up
. Cole-o no campo de token do túnel Cloudflare do complemento CloudfLared HA. A documentação menciona que, quando tiver um valor, o complemento ignora todos os outros parâmetros de configuração.
Agora você pode remover os parâmetros relacionados ao Server_port e SSL da configuração acima. Então, reinicie ha.
Neste ponto, você poderá acessar o HA através do subdomínio através do túnel. É hora de remover o complemento Let’s Crypt, a configuração SSH herdada e o script de renovação.
Conclusão
Nesta postagem, instalamos o CloudFlare Tunnel para permitir acesso seguro à sua interface do usuário. Se você o instalar em uma instância de HA totalmente nova, o processo será direto. Se você substituir uma configuração existente, como o SSL da Let’s Encrypt, ela se tornará um pouco mais complicada, mas não impossível. Nos dois casos, nos beneficiamos não apenas dos certificados SSL CloudFlare, mas também de sua automação de renovação de certificados.
Ir além:
Publicado originalmente em um geek java em 11 de maio de 2025