Cómo instalar certificados seguros para nuestro dominio de Domoticz

obreherrero del grupo «Domoticz a lo spain» de telegram nos explica cómo instalar certificados seguros para nuestro dominio de Domoticz. 

Pasos a seguir

Requisitos previos

Para seguir este tutorial es necesario:

  • Disponer de un dominio apuntando a la dirección IP de la Raspberry.
  • Abrir los puertos 80 y 443 en nuestro router.

Software necesario

Putty

Necesitaremos instalar el programa puTTY, que utilizaremos para conectar con nuestra raspberry por consola. Lo podéis descargar de aquí https://www.putty.org/

download putty
download putty

Lo más seguro es que vuestro PC, si es moderno, sea de 64 bits. En caso de duda bajar la versión de 32, o bien probar y si la de 64 bits no os funciona ya os bajáis la de 32 bits.

Python

Para poder iniciar este tutorial necesitamos tener instalado el plugin de Python en nuestra raspberry.

Se instaló en el apartado «Instalación domoticz» de la guía «Instalación de domoticz desde cero«, recuerda que debemos lanzar la siguiente linea en puTTY:

sudo apt install python3 htop nano python3-dev curl wget

Nos pedirá confirmación y le diremos que si Y.

Si tenemos dudas respecto a tener o no tener Python instalado, podemos lanzar la linea igualmente y la propia raspberry, en caso de tenerlo ya instalado, nos dirá que ya está operativo y la versión del mismo.

Configuración en puTTY

Ahora introducimos lo siguiente, uno tras otro y tenemos paciencia tras introducir la segunda línea porque va a tardar:

cd /etc/ssl/certs
sudo openssl dhparam -out dhparam.pem 2048

Lanzamos la siguiente línea para ver si nos aparece correctamente cargado:

ls -lah /etc/ssl/certs/dhparam.pem

Antes de instalar nada vamos asegurarnos de que todo esté actualizado. Abrimos puTTY e introducimos lo siguiente:

sudo apt-get update
sudo apt-get upgrade

Una vez actualizado pasaremos a instalar LetsEncrypt (cerbot)

sudo apt-get install certbot

El siguiente paso será obtener un certificado SSL para nuestra Raspberry Pi.

Hay que tener mucho cuidado a la hora de introducir los siguientes comandos, puesto que habrá que sustituir “example.com” por tu dominio.

Además, a la hora de poner el dominio en el comando no se deben incluir ni https o http delante.

Vamos pues. Introducimos línea a línea los siguientes comandos:

sudo service domoticz.sh stop
sudo certbot certonly --standalone -d example.com
sudo mv /home/pi/domoticz/server_cert.pem /home/pi/domoticz/server_cert.pem.org
sudo cat /etc/letsencrypt/live/example.com/privkey.pem > /home/pi/domoticz/server_cert.pem
sudo cat /etc/letsencrypt/live/example.com/fullchain.pem >> /home/pi/domoticz/server_cert.pem
sudo cp /home/pi/domoticz/server_cert.pem /home/pi/domoticz/letsencrypt_server_cert.pem
sudo cat /etc/ssl/certs/dhparam.pem >> /home/pi/domoticz/server_cert.pem
sudo /etc/init.d/domoticz.sh restart

Comprobación de su funcionamiento

Llegados a este punto podemos probar el funcionamiento de nuestro dominio con los certificados instalados. Para ello introducimos en nuestro navegador el dominio con el https delante, siguiendo con nuestro ejemplo sería:

https://example.com/

Vamos bien 😊, por tanto, lo ideal es cerrar el puerto 80 (o el que tengas abierto) de nuestro router para que solamente podamos acceder a nuestro domoticz por el dominio con los certificados seguros.

Renovar el certificado de manera automática

Los certificados que hemos instalado tienen una caducidad de tres meses, por tanto, vamos a renovarlos de manera automática de la siguiente manera en Putty:

nano /home/pi/domoticz/scripts/deploy-cert.sh

A continuación, nos saldrá una nueva pantalla donde deberemos copiar lo siguiente. Es muy importante cambiar “example.com” por nuestro dominio, tal y como hicimos antes.

#!/usr/bin/env bash
sudo mv /home/pi/domoticz/server_cert.pem /home/pi/domoticz/server_cert.pem.org  # see below about DH params why not just delete it
sudo cat /etc/letsencrypt/live/example.com/privkey.pem > /home/pi/domoticz/server_cert.pem
sudo cat /etc/letsencrypt/live/example.com/fullchain.pem >> /home/pi/domoticz/server_cert.pem
sudo cp /home/pi/domoticz/server_cert.pem /home/pi/domoticz/letsencrypt_server_cert.pem
sudo cat /etc/ssl/certs/dhparam.pem >> /home/pi/domoticz/server_cert.pem
sudo /etc/init.d/domoticz.sh restart

Una vez pegado los anterior con nuestro dominio cambiado pulsamos Control+X  y escribimos Y para guardar los cambios.

Finalmente introduce esto:

chmod +x /home/pi/domoticz/scripts/deploy-cert.sh

Últimos pasos

Una vez creado ese fichero anterior hay que añadir esta entrada en el crontab.

Lanzamos esta línea en putty:

sudo crontab -e

Bajamos con la fecha y añadimos esto al final:

30 6 * * * certbot renew --webroot -w /home/pi/domoticz/www/ --deploy-hook /home/pi/domoticz/scripts/deploy-cert.sh

A continuación lanzamos esto:

sudo nano /etc/init.d/domoticz.sh

Si en user nos aparece pi lo cambiamos por root. Situamos el cursor encima moviéndolo con las flechas, sustituimos el texto y guardamos:

Ahora lanzamos estos tres comandos, uno tras otro en este orden:

sudo systemctl daemon-reload
sudo systemctl stop domoticz
sudo systemctl start domoticz

Ahora vamos con lo siguiente:

./home/pi/scripts/deploy-cert.sh

Y reiniciamos todo:

sudo systemctl daemon-reload
sudo systemctl stop domoticz
sudo systemctl start domoticz

Agradecimientos

Agradecer a nuestro compañero ea4gkq del grupo “Domoticz a lo Spain” de telegram la ayuda prestada en la edición de este tutorial. Sin él no habría sido posible.

Para cualquier duda o consulta tienes disponible el grupo de telegram «Domoticz a lo Spain» para entrar, ponerte cómodo y participar cuanto quieras.

Clica aquí para entrar en él

Cualquier duda, sugerencia o comentario será bien recibida en la web!