Como usar HomeAssistant con https gracias a CloudFlare y Apache.

¿Has conseguido solucionar algún problema en Home Assistant y quieres compartirlo? ¿Alguna automatización para ayudar al resto? ¡Comparte!
Responder
angelicooo
Mensajes: 17
Registrado: Jue Dic 13, 2018 1:22 am

Como usar HomeAssistant con https gracias a CloudFlare y Apache.

Mensaje por angelicooo » Jue Dic 13, 2018 10:09 pm

Cómo usar Home Assistant fuera de la red usando el protocolo https gracias a Apache y Cloudflare


Para realizar esto, necesitamos algunas cosas antes de empezar:

1. Un dominio, si no tienes uno, no hace falta que pagues, existe http://freenom.com que te ofrece dominios gratuitos durante 1 año, sin necesidad de tarjeta ni nada, tan solo tu correo electrónico.
2. Una cuenta de CloudFlare, gracias a esta empresa y su cuenta gratuita, podremos tener un certificado https a nivel de DNS, es decir, no hará falta instalar nada en nuestro servidor.
3. Home Assistant instalado, no es compatible con Hass.io ya que éste no tiene Apache instalado.
4. Una IP fija/estática. Como muchos de vosotros (por no decir todos) no teneis IP estática, os recomiendo usar mi script de python https://github.com/angelsocias/CloudFla ... hanger-Bot que, gracias a nuestro dominio gratuito y CloudFlare mantendremos nuestro dominio apuntando siempre a nuestra IP pública. De lo contrario, habrá que cambiar la IP manualmente cada vez que cambie.

Una vez tenemos todo, nuestro dominio apuntando a nuestra IP desde CloudFlare, procedemos a configurar nuestro servidor.

1. Primero de todo necesitamos tener Apache instalado, para ello, ejecutamos el siguiente comando:

Código: Seleccionar todo

sudo apt-get install apache2
2. Una vez instalado, debemos activar algunos "plugins" para que posteriormente funcione todo correctamente. Ejecutamos los siguientes comandos:

Código: Seleccionar todo

sudo a2enmod proxy

Código: Seleccionar todo

sudo a2enmod proxy_http

Código: Seleccionar todo

sudo a2enmod proxy_balancer

Código: Seleccionar todo

sudo a2enmod lbmethod_byrequests

Y reiniciamos el servicio para que se apliquen los cambios.

Código: Seleccionar todo

sudo service apache2 reload

3. Una vez tenemos instalado apache y activados los mods necesarios, vamos a configurar el VirtualHost, digamos que esto es lo que va a hacer que cuando entremos por nuestro dominio, redirija internamente a nuestra instalación de HomeAssistant.
Para ello, vamos a crear primero el archivo, con el siguiente comando:

Código: Seleccionar todo

sudo nano /etc/apache2/sites-available/homeassistant.conf
Se nos abrirá una ventana, esto es un editor de texto en terminal. Aquí pegaremos el siguiente trozo de código (Para pegarlo, si usas el cliente Putty, se hace haciendo click derecho):

Código: Seleccionar todo

  <VirtualHost *:80>
  ProxyPreserveHost On
  ProxyRequests Off
  ServerName dominio.com

  ProxyPass "/" "http://localhost:8123/"
  ProxyPassReverse "/" "http://localhost:8123/"

  RewriteEngine on
  RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
  RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
  RewriteRule .* ws://localhost:8123%{REQUEST_URI} [P]
</VirtualHost>
Donde pone dominio.com, debemos cambiarlo por el dominio creado con FreeNom.

Una vez pegado y cambiado el dominio, presionamos teclas Ctrl+O, Enter para guardar el archivo y luego Ctrl+X para cerrarlo.

Ahora debemos activar el VirtualHost, se hace con el siguiente comando:

Código: Seleccionar todo

sudo a2ensite homeassistant.conf

Y reiniciamos apache2 para que haga efecto el cambio:

Código: Seleccionar todo

sudo service apache2 restart
Si hemos realizado todos los pasos correctamente, ya deberiamos poder entrar desde nuestro dominio que hemos creado, a HomeAssistant, pudiendo usar https si hemos puesto el registro en CloudFlare con la nube en naranja.

Espero que os sirva de ayuda, el tutorial también está en mi GitHub https://github.com/angelsocias/HomeAssi ... ith-Apache.

Cualquier duda, podeis comentar por aquí y os iré leyendo, si necesitais que amplie el tutorial en como hacer algun paso en específico, o como coger un dominio en freenom o como apuntarlo a los DNS de CloudFlare, tan solo pedírmelo y os ayudaré.

Me podéis encontrar por el grupo de Telegram también.

eduardo
Site Admin
Mensajes: 94
Registrado: Mié Dic 12, 2018 1:09 am

Re: Como usar HomeAssistant con https gracias a CloudFlare y Apache.

Mensaje por eduardo » Jue Dic 13, 2018 10:52 pm

Genial! Buen aporte, muchas gracias!
--
Fundador y miembro activo de la comunidad de domoticaencasa.es ! :D

breiko
Mensajes: 16
Registrado: Vie Dic 14, 2018 3:40 pm

Re: Como usar HomeAssistant con https gracias a CloudFlare y Apache.

Mensaje por breiko » Vie Dic 14, 2018 3:50 pm

Muy bueno!!! Es algo que quiero probar.

jorcat
Mensajes: 1
Registrado: Lun Dic 17, 2018 5:02 pm

Re: Como usar HomeAssistant con https gracias a CloudFlare y Apache.

Mensaje por jorcat » Lun Dic 17, 2018 5:11 pm

Gran aporte!

Aunque he tenido mis problemas, primero q tenia registrado un subdominio en FreeDns (*.mooo.com), luego he registrado otro en FreeNom.
Y no tenia ni idea de como redirigirlo a Cloudfare.
He dado en Freenom con el checkbox "Use custom nameservers (enter below)" para informar las DNSs de Cloudfare. Y luego redirigir el HTTPS para www .

Y por ultimo tenia una instalación de Apache2.4 con 2 virtualhosts y al realizar las llamadas al wss://www.miDominio.tk/websocket/api me devolvia un 500.
Revisando logs de apache he dado con un error:
"AH01144: No protocol handler was valid for the URL /api/websocket . If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule. "

Luego ha sido un poco de stackoverflow y suerte, he añadido no se cuantos mas modulos al apache:

Código: Seleccionar todo

sudo a2enmod ssl
sudo a2enmod proxy
sudo a2enmod proxy_balancer
sudo a2enmod proxy_http
sudo a2enmod proxy_wstunnel
sudo a2enmod proxy_fcgi
He cruzado los dedos, una vela negra, he hecho un restart al apache y PAM!
:roll:

laurdav
Mensajes: 2
Registrado: Mar Dic 18, 2018 10:11 am

Re: Como usar HomeAssistant con https gracias a CloudFlare y Apache.

Mensaje por laurdav » Jue Ene 03, 2019 12:47 pm

Esto mismo se puede hacer en docker, para la instalacion de HA, y de alguna plataforma mas como Plex, etc.??

Responder