Si vous voulez pouvoir accéder à votre serveur Domoticz en dehors de chez vous de façon sécurisée, il est préférable d’installer un certificat Let’s Encrypt (ou un équivalent) à la place du certificat auto-signé installé par défaut. Let’s Encrypt est une autorité de certification (AC ou CA pour Certificate Authority en anglais) gratuite, automatisée et ouverte, exploitée pour le bénéfice du public. C’est un service fourni par Internet Security Research Group (ISRG).
Vous aurez également besoin d’installer un certificat valide pour utiliser de façon sécurisée l’appli domotique Homy pour iOS ou Android.
Sommaire
- 1 Le certificat auto-signé par défaut est rejeté par les navigateurs modernes
- 2 Configurer le routeur ou la box internet pour rendre accessible Domoticz depuis internet
- 3 Créer un nom de domaine avec Duck DNS
- 4 Installer Let’s Encrypt sur Raspberry Pi OS (ancien Raspbian)
- 5 Créer un certificat Let’s Encrypt
- 6 Installer le certificat SSL Let’s Encrypt sur Domoticz
- 7 Tester la connexion sécurisée
Si vous essayez d’accéder en HTTPS à l’interface WEB de Domoticz depuis un navigateur moderne, vous allez obtenir ce message d’alerte qui vous informe que vous allez accéder à un site dangereux (du point de vue du navigateur). Pas de panique, vous connaissez ce site. Cliquez sur Afficher les paramètres avancés puis sur Continuer vers le site…(dangereux) pour accéder à Domoticz.
On va arranger tout ça en remplaçant le certificat auto-signé installé par défaut lors de l’installation de Domoticz par un certificat valide Let’s Encrypt.
Configurer le routeur ou la box internet pour rendre accessible Domoticz depuis internet
La première chose à faire est de configurer un routage de port vers le serveur Domoticz. Pour cela connectez-vous à l’interface de gestion de votre routeur ou de votre internet. Voici un exemple sur une box internet SFR ou il faut se rendre dans le menu Réseau v4 puis NAT. La configuration est similaire d’une box à l’autre, vous devriez vous y retrouver assez facilement.
Créez plusieurs redirection en saisissant les paramètres suivants :
- Protocole : TCP
- Port (entrée) : 443 ou 8080
- IP : l’adresse IP du serveur Domoticz sur le réseau local
- Port (redirection) : idem
- Cocher Activer
- Ajouter la redirection en cliquant sur le Plus
Une première redirection du port 443 vers le port 443.
Une seconde redirection du port 80 vers le port 8080 que l’on utilisera juste pour créer le certificat Let’s Encrypt.
Vous pouvez créer une troisième redirection du port 8080 vers 8080 pour tester l’accès non sécurisé mais je vous le déconseille.
Créer un nom de domaine avec Duck DNS
DuckDNS est un service totalement gratuit qui permet de créer jusqu’à 5 noms de domaine. L’extension de votre domaine portera l’extension duckdns.org. Cette extension ne peut pas être personnalisée mais on ne va pas faire la fine bouche.
Pour utiliser Duck DNS, vous aurez besoin d’un compte Persona, Twitter, github ou reddit. Une fois connecté, il suffit d’indiquer le nom de domaine souhaité dans le champ de création
DuckDNS détecte automatiquement l’adresse IP de votre box internet. Il est toutefois possible de la modifier et même d’indiquer une adresse IP de type IP v6 si votre box le supporte.
Si vous avez créé une redirection du port 8080, vous pouvez tester que vous avez bien un accès à Domoticz depuis Internet en saisissant le nom de domaine dans un navigateur. Comme vous pouvez le constater, Chrome (ou n’importe quel autre navigateur) vous informe que le site n’est pas sécurisé. Toutes les commandes exécutées et les données échangées avec le serveur sont envoyées sans cryptage sur internet.
Installer Let’s Encrypt sur Raspberry Pi OS (ancien Raspbian)
Nous allons voir ici comment installer Let’s Encrypt sur Raspbian pour générer un certificat valide. Vous pouvez utiliser ce certificat si Domoticz est installé sur un NAS (Synology par exemple). Vous pouvez aussi générer un certificat Let’s Encrypt à l’aide de l’outil Cerbot qui nécessite Python 2.7. Suivez la documentation officielle pour plus de détails.
Pour installer Let’s Encrypt sur Raspbian, exécutez les commandes suivantes les unes après les autres
cd /etc sudo git clone https://github.com/letsencrypt/letsencrypt cd letsencrypt sudo ./letsencrypt-auto
Créer un certificat Let’s Encrypt
Vous aurez besoin des informations suivantes pour créer votre certificat :
- Un nom de domaine. Utilisez le nom de domaine créé sur DuckDNS par exemple (sans le http:// devant)
- Une adresse email (bon, c’est pas le plus difficile à trouver 🙂 )
- Le chemin vers le dossier de l’interface Web Domoticz. Sur Raspbian c’est ~/domoticz/www
Modifiez les paramètres de la commande Let’s Encrypt et exécutez celle-ci
sudo /etc/letsencrypt/letsencrypt-auto certonly --webroot --email -d -w /domoticz/www/
Durant le processus de création du certificat, Let’s Encrypt va chercher à joindre le serveur Domoticz sur le port 80, c’est la raison pour laquelle il faut router ce dernier vers le port 8080, au moins le temps de créer le certificat.
Si tout s’est bien déroulé, vous devriez obtenir un compte rendu de ce type
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator webroot, Installer None Obtaining a new certificate Performing the following challenges: http-01 challenge for xxxxxx.duckdns.org Using the webroot path /home/pi/domoticz/www for all unmatched domains. Waiting for verification... Cleaning up challenges
Vous pouvez supprimer la redirection du port 80 vers le port 8080 sur votre routeur ou box internet.
Installer le certificat SSL Let’s Encrypt sur Domoticz
Il ne reste plus qu’à installer le certificat dans le répertoire de Domoticz en exécutant les commandes suivantes. Par sécurité, la première commande fait une copie du certificat installé par défaut.
sudo cp ~/domoticz/server_cert.pem ~/domoticz/server_cert.pemold sudo cat /etc/letsencrypt/live/homy-domoticz.duckdns.org/privkey.pem >> ~/domoticz/server_cert.pem sudo cat /etc/letsencrypt/live/homy-domoticz.duckdns.org/fullchain.pem >> ~/domoticz/server_cert.pem
Ou d’après le retour de Philippe
sudo cat /etc/letsencrypt/live/homy-domoticz.duckdns.org/privkey.pem > ~/domoticz/server_cert.pem
On fait une copie en local pour pouvoir le réinstaller en cas de problème (après une mise à jour par exemple)
sudo cp ~/domoticz/server_cert.pem ~/domoticz/letsencrypt_server_cert.pem
Voilà, il ne reste plus qu’à redémarrer Domoticz
sudo /etc/init.d/domoticz.sh restart
Tester la connexion sécurisée
Et voilà, tout est prêt, il ne vous reste plus qu’à tester que tout fonctionne en vous rendant sur votre domaine en saisissant une adresse de ce type
https://nom_domaine.duckdns.org:443
Si tout est correct, vous devriez directement arriver sur l’interface Web de Domoticz sans aucun message d’alerte. Le cadenas est verrouillé ce qui indique que la communication est cryptée et que le certificat est valide. Vous pouvez d’ailleurs consulter ce dernier pour le vérifier (ici sur Safari).
En cas de problème, videz le cache de votre navigateur pour forcer le rechargement complet de la page.
Avez-vous aimé cet article ?