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/
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.
Cualquier duda, sugerencia o comentario será bien recibida en la web!