Site icon Le blog des objets connectés

Accéder à Jeedom via une URL externe, en https et via un domaine OVH

Avoir le logiciel domotique Jeedom au coeur de son installation, c’est avoir l’assurance d’une domotique haut de gamme. On est ici à l’opposé des “jouets” que peuvent être les assistants vocaux comme Google Home, Amazon Alexa,… Ces assistants sont certes très pratiques pour interagir par la voix mais ils doivent idéalement se limiter à cela.

Mais n’avoir qu’un Jeedom qui ne fonctionnerait que lorsqu’on est connecté chez soi au même réseau, ce serait se priver inutilement. Rien de mieux en effet que de pouvoir piloter Jeedom depuis l’extérieur, au travers d’une belle URL et via le protocole sécurisé HTTPS (avec des certificats SSL).

Un service DNS est possible chez Jeedom, moyennant paiement. Personnellement, j’ai choisi la voie la plus difficile mais aussi la moins chère : utiliser un nom de domaine OVH (1,99 euros par an) et y installer un certificat SSL gratuit en provenance de Let’s Encrypt.

Le nom de domaine chez OVH

L’achat en lui-même est facile : https://www.ovh.com/fr/domaines/. Le prix varie selon l’extension du nom de domaine (.be, .fr, .com,…..). Les .ovh sont souvent les moins chers. Il y a bien entendu moyen de trouver des noms de domaines gratuits (chez son fournisseur internet par exemple) mais, pour 1,99 euros, je préfère avoir l’expertise OVH.

Une fois acheté, le domaine est disponible après quelques dizaines de minutes. Pour la clarté de cet article, supposons que j’aie acheté le domaine mondomaine.ovh

La première chose à faire est d’activer DynHOST sur OVH. DynHOST permet de faire pointer un sous-domaine vers l’adresse IP dynamique de son routeur. Dès que cette adresse IP change, le routeur pourra alors faire une mise à jour se fait automatique dans la zone DNS du domaine. Cela permet de garder en permanence un accès à son Jeedom même si son adresse IP publique externe est modifiée par son fournisseur internet suite à un reboot par exemple.

A noter: patientez environ deux heures à la fin de cette étape afin d’être sûr que la zone DNS soit bien mise à jour et bien propagée sur les autres serveurs. 

La configuration du routeur

La seconde étape consiste à configurer le routeur. Cela se fait en deux temps :

  1. Configurer le routeur pour qu’il mette à jour son adresse IP dans la zone DNS du domaine, c’est-à-dire qu’il utilise la configuration DynHost de OVH réalisée à l’étape précédente
  2. Ouvrir les ports et les rediriger vers la machine qui héberge Jeedom pour permettre l’installation des certificats et la connexion depuis l’extérieur

Ces deux étapes dépendent du type de routeur. Le mien est DreaMachine Pro d’Ubiquiti. Les écrans seront donc différents chez vous mais le principe est le même sur quasiment tous les routeurs.

1. DynHost sur le routeur Dream Machine Pro d’Ubiquiti

Dans cette étape, il s’agit de renseigner au router les informations DynHost créée sur OVH:

Si tout est bien configuré, un clic sur “Save” termine la configuration. Si pas, un message d’erreur sera affiché.

2. Ouvrir les ports et les rediriger

Cette fois, nous allons ouvrir les ports afin de permettre d’installer les certificats Let’s Encrypt, condition sine qua non pour avoir du https

Il faut ouvrir les ports 80, 443 et 22 et les rediriger vers la machine Jeedom.

Pour chaque port, à savoir 80, 443 et 22, il faut autoriser le trafic et mentionner, dans le champs “Forward IP”, l’adresse IP de la machine Jeedom. Par exemple pour le port 80:

A la fin de cette étape, si tout a bien fonctionné, vous devriez pouvoir vous connecter à votre Jeedom en tapant l’URL http://monjeedom.mondomaine.ovh. Si cela ne fonctionne pas, inutile d’aller plus loin car il y a soit une erreur au niveau de la configuration du domaine OVH soit au niveau du routeur.

Il reste maintenant à installer des certificats SSL pour pouvoir se connecter de façon sécurisée en https. Pour l’instant, via http, votre browser internet vous indique en effet que votre site n’est pas sécurisé.

Installation des certificats SSL sur Jeedom

Pour les certificats SSL, j’ai choisi Let’s Encrypt tout simplement parce que c’est gratuit.

1. Certbot de Let’s Encrypt

Certbot is a free and open-source utility mainly used for managing SSL/TLS certificates from the Let’s Encrypt certificate authority. It is available for most UNIX and UNIX-like operating systems, including GNU/Linux, FreeBSD, OpenBSD and OS X.

Certbot va simplifier l’installation des certificats SSL. Il faut donc l’installer sur la machine qui héberge Jeedom. Mon Jeedom étant installé sur une machine virtuelle Debian et sur un NAS Synology, j’y accède via le NAS Synology et le bouton “Connect”.

Cela ouvre une fenêtre me permettant de lancer les commandes Linux. Je commence par passer en superuser en tapant 

su

Après avoir introduit le mode de passe du superuser, on lance l’installation de Certbot avec cette commande en suivant les recommandations décrites ici : https://certbot.eff.org/lets-encrypt/debianbuster-other

Il faut donc :


sudo snap install --classic certbot

Je n’ai pas eu à faire les étapes suivantes décrites dans l’installation de CertBot. 

2. Installation des certificats SSL de Let’s Encrypt

J’ai, pour ce faire, suivi la procédure décrite ici, à l’exception de l’installation de CertBot (puisque c’était déjà fait) : https://linuxhostsupport.com/blog/install-lets-encrypt-ssl-certificates-using-certbot/

certbot –apache -d monjeedom.mondomaine.ovh

N’oubliez pas d’indiquer une adresse email et, à la question posée ci-dessous, répondez 1 par sécurité

A la fin, si tout s’est bien passé, vous deviez avoir un message indiquant que tout s’est bien passé.

Un petit conseil : faites une sauvegarde de vos certificats avec cette procédure de sahsanu (https://community.letsencrypt.org/t/confused-about-backing-up-keys-and-account-credentials/12483/2):

But the best approach is backup the entire /etc/letsencrypt dir. There you have not only the certs, the keys used for those certs, etc. but the renewal info, your account details used to revoke certs, etc. so yes, please, backup all.

sudo cp -r /etc/letsencrypt/ ~myuser

Edit: If you copy the files, the owner of that files will be root, if you want to view the contents using your user you should chown the copied dir.

sudo chown -R myuser:myuser ~myuser/letsencrypt/

Ensuite utilisez un Filezilla pour vous connecter à votre Machine Virtuelle et télécharger les fichiers.

Configuration de Jeedom

On va maintenant indiquer à Jeedom quelle est l’adresse de connexion externe.

Aller sur Réglages / Système / Configuration

Dans “Accès externe”, renseigner “HTTPS” comme protocole, ensuite “monjeedom.mondomaine.ovh” et puis le port de communication (probablement 80).

Et voilà le résultat

Et voila, avec une commande https://monjeedom.mondomaine.ovh, vous devriez avoir accès à votre jeedom depuis l’extérieur.

Conclusions

Pour 1,99 euros par an vous disposez maintenant d’une belle URL pour vous connecter de façon sécurisée (HTTPS) à votre Jeedom. Et, en plus, vous avez votre propre nom de domaine et la possibilité d’y activer un petit hébergement gratuit de 10 Mo et une adresse email personnelle.

Quitter la version mobile