Domoticz #02.1 : Sécuriser son accès avec SSL et le port 443.

Introduction.

Il est primordiale de protéger votre installation domotique pour plusieurs raisons.

La premiere raison est que vos données ne regarde que vous.

Même si la température de votre salle de bain n’intéresse personne. Le contenu de vos cameras, la manière de gérer votre alarme, etc.., est beaucoup plus intéressante.

C’est pour cela qu’il faut protéger un maximum, pour éviter que le petit Kévin (desolé pour les Kévin), qui vient de découvrir le Black Hacking, ne puisse accéder à votre domotique.

Nous allons voir comment passer le trafic de votre domotique en HTTPS et se connecter en 443 au lieu du 8080 à la fin de votre adresse IP ou votre nom de domaine.

Actuellement quand vous vous connectez sur https://votreip:443 vous avez un message d’avertissement ? C’est simplement parce que votre adresse IP ou votre nom de domaine n’a pas de certificat SSL valide.

https://youtu.be/LAeQd8AjPMo

Matériels utilisés.

Prérequis.

  • Avoir configuré la redirection des ports 80 et 443 vers 8080 et 443. (Vous pourrez par la suite supprimer la redirection 80 vers 8080 ou l’ envoyer vers 443. Mais pour le moment vous devez garder les deux redirections.)
  • Avoir un nom de domaine (NDD) ou celui que votre Freebox peut vous fournir gratuitement.
  • Vérifier le fonctionnement de votre nom de domaine en le tapant dans votre navigateur (Vous deviez avoir un message comme cité plus haut).
  • Avoir Python 3 d’installé.
sudo apt-get install python3
sudo apt install libpython3.7 python3-dev
sudo apt-get install git

Procédure.

Maintenant que tous marche. Connectez vous en SSH a votre Raspberry.

ssh user@adresseipdevotreserveur

Puis installer Certbot avec la commande qui suit.

sudo apt-get install certbot
cd /etc
sudo git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
sudo ./letsencrypt-auto

NOTA 1 : Si vous avez des problèmes avec letsencrypt qui vous dit que le dossier existe déjà et qu’il n’est pas vide, supprimer le dossier.

sudo rm -R /letsencrypt

NOTA 2 : Si vous avez un problème, des erreurs avec « Certbot », regarder dans la partie Trucs & Astuces.

Une fois que les commandes du dessus sont terminées.

sudo /etc/letsencrypt/letsencrypt-auto certonly --webroot --email votreadressemail.com -d votrenomdedomaine.com -w /home/pi/domoticz/www/

Une question vous seras posé, il faut répondre « A » á la première et Y ou N a la deuxième si vous souhaitez être inscrit sur la newsletter de EFF.

On fait une copie de sauvegarde du fichier cert.pem via la commande ci dessous.

sudo mv ~/domoticz/server_cert.pem ~/domoticz/server_cert.pem.org

On copie les fichiers dans Domoticz.

sudo cat /etc/letsencrypt/live/votrenomdedomaine/privkey.pem >> ~/domoticz/server_cert.pem
sudo cat /etc/letsencrypt/live/votrenomdedomaine/fullchain.pem >> ~/domoticz/server_cert.pem
sudo cp ~/domoticz/server_cert.pem ~/domoticz/letsencrypt_server_cert.pem

On redémarre Domoticz.

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

Connectez vous a https://votrenomdedomaine:443

Vous devriez tomber sur la page de connexion sans messages d’avertissement.

Renouvellement automatique du certificat.

Le certificat par défaut est valable 90 jours. Nous allons donc faire en sorte qu’il se renouvelle automatiquement. Nous passerons par une CronTab.

Connectez vos en ssh au Raspberry.

crontab -e

NOTA : Si vous lancer la commande crontab pour la première fois il vous demande avec quel logiciel vous voulez l’ouvrir. Moi je choisi nano après libre à vous.

Ajouter à la fin la ligne suivante.

0 23 * * 5 sudo certbot-auto renew --webroot -w ~/domoticz/www/ --deploy-hook ~/domoticz/scripts/deploy-cert.sh >/dev/null 

Nous reviendrons sur la commande une autre fois.

Trucs & Astuces.

Pour ceux qui comme moi ont un problème avec Certbot.

Lors du lancement de la dernière commande, elle renvoi une erreur de ce type.

Certbot has problem setting up the virtual environment.

We were not be able to guess the right solution from your pip
output.

Consult https://certbot.eff.org/docs/install.html#problems-with-python-virtual-environment
for possible solutions.
You may also find some support resources at https://certbot.eff.org/support/ .

Il suffit de lancer la commande suivante.

sudo rm -rf /etc/pip.conf

Puis relancer la commande qui bloquée.

sudo /etc/letsencrypt/letsencrypt-auto certonly --webroot --email votreadressemail.com -d votrenomdedomaine.com -w /home/pi/domoticz/www/

Sources.

https://projetsdiy.fr/securiser-domoticz-avec-un-certificat-lets-encrypt-acces-depuis-internet-https/

https://www.domoticz.com/wiki/Native_secure_access_with_Lets_Encrypt

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *