Je vais enfoncer des portes ouvertes, être précis a l’excès, et décrire plus particulièrement les étapes qui m’ont posées problème
Si vous avez des problèmes et que cela ne marche pas pour vous, je ne saurai pas vous aider, car je rappelle que j’ai fait cette installation pas a pas sans en comprendre une grande partie !
Je me base sur les tutoriels et la grande aide que m’a apporté Poluket sur le forum de Jeedom (cf le fil « Accès externe en https », viewtopic.php?f=23&t=33670)
Voici ses tutoriels que je vous invite a lire avant toute chose :
- Letsencrypt dns-01 OVH - créer un certificat sans devoir ouvrir Jeedom sur internet : https://www.domohab.be/index.php/tuto/j ... certificat
- Dyndns OVH pour Jeedom : https://www.domohab.be/index.php/tuto/j ... our-jeedom
- Et lire aussi bien sur le tutoriel de la doc de Jeedom, mais sachant qu’elle ne correspond pas exactement a la méthode proposée ici : https://jeedom.github.io/documentation/ ... e_en_place
PREAMBULE
- J’ai fait cette installation sur une box Jeedom Smart en version 3.1.7
- J’ai séparé chaque étape dans l’ordre qui m’a semblé le plus logique
- Les étapes de création d’un dyndns et de configuration du plugin Jeedom Dyndns concernent ceux qui ont un fournisseur d’accés internet donnant une IP publique (=adresse de votre modem/routeur) dynamique (= qui change régulièrement)
- Pour ceux qui ont une IP publique fixe, il ne faut pas accéder a Jeedom via cette IP car le certificat de sécurité ne sera pas considéré comme valide sans exception de sécurité. La solution pour cela est décrite de creer un A record dans le DNS : ne l’ayant pas fait, je ne le décris pas dans ce tuto
- Dans votre modem/routeur, il faut attribuer une adresse IP locale fixe a Jeedom
- Etant sur Mac, j’ai utilisé l’utilitaire Terminal pour me connecter en SSH au serveur de Jeedom. Je ne sais pas comment procéder sur PC
- Les commandes a taper dans le terminal :
Une commande par ligne
On valide chaque commande avec la touche entrée (j’ai dis que je vais parfois trop détailler meme pour des trucs évidents )
- La commande nano :
nano est une sorte d’éditeur de texte
j’ai mis en rouge des extraits venant de ces fichiers pour les exemples
une fois l’edition de texte faite, taper la commande pour Exit, puis valider avec Entrée
CREATION D’UN NOM DE DOMAINE (DNS) CHEZ OVH
On va sur www.ovh.com puis on cree son nom de domaine
CREATION D’UN DYNDNS CHEZ OVH (si IP publique dynamique)
Il s’agit la de créer un sous-domaine avec votre domaine OVH créé juste ci-dessus
Ce sous-domaine appelé DynHost par OVH, vous servira a configurer le plugin Jeedom « Dyndns » (cf étape ci-dessous)
Pour rester simple, cela vous permet de pouvoir joindre votre Jeedom via une adresse fixe (votre sous-domaine), le DynHost via le plugin DynDns allant interroger régulièrement votre modem pour mettre a jour votre IP publique lorsqu’elle change
Cette etape est parfaitement décrite dans le tutoriel de Poluket « Dyndns OVH pour Jeedom »
CONFIGURATION DU PLUGIN JEEDOM « DYNDNS » (si IP publique dynamique)
Idem, allez sur le tutoriel dédié de Poluket "Dyndns OVH pour Jeedom »
CREATION DES 3 CLES API CHEZ OVH POUR LE CERTIFICAT SSL
Ces 3 clés sont dénommées : Application Key / Application Secret / Consumer Key
Elles servent ensuite a générer votre certificat SSL
Voir le tutoriel de Poluket « Letsencrypt dns-01 OVH - créer un certificat sans devoir ouvrir Jeedom sur internet »
SE CONNECTER EN SSH AU SERVEUR DE JEEDOM
Taper la commande suivante dans le terminal (remplacer les xx par l’IP effective de votre Jeedom) :
Code : Tout sélectionner
ssh jeedom@192.168.xx.xx
Attention, sur le terminal de Mac, rien ne s’affiche lorsque l’on tape le password (meme pas des étoiles ou autre), du coup j’ai cru au debut que ca ne marchait pas. En pratique, j’ai fait un copier du password, j’ai cliqué sur la clé qui s’affiche dans le terminal, puis un coller, puis valider
A ce stade, je n’étais pas connecté en root, ce qui m’empêchait ensuite de faire les commandes nécessaires. Pour être en root, taper :
Code : Tout sélectionner
sudo su -
Voila, vous êtes prêt a commencer
PROCEDURE
Vous êtes donc connecté en SSH au serveur Jeedom comme décrit ci-dessus
Placez vous dans le dossier /opt :
Code : Tout sélectionner
cd /opt
Code : Tout sélectionner
git clone https://github.com/letsencrypt/letsencrypt
git clone https://github.com/antoiner77/letsencrypt.sh-ovh
apt-get install python-pip
pip install ovh
cd letsencrypt.sh-ovh
mv * /opt/letsencrypt
cd ..
rm -Rf letsencrypt.sh-ovh/
Code : Tout sélectionner
cd /opt/letsencrypt
Code : Tout sélectionner
chmod 700 manual-auth-hook.py
chmod 700 manual-cleanup-hook.py
mv ovh.conf.demo ovh.conf
chmod 700 ovh.conf
Code : Tout sélectionner
nano ovh.conf
[default]
; general configuration: default endpoint
endpoint=ovh-eu
[ovh-eu]
; configuration specific to 'ovh-eu' endpoint
application_key=XXXXXXXXXX
application_secret=XXXXXXXXXXXX
; uncomment following line when writing a script application with a single consumer key.
consumer_key=XXXXXXXXXXXXX
Faite Exit puis Entrée pour valider
Toujours dans le dossier /opt/letsencrypt, taper et valider ensuite les commandes suivantes les unes après les autres :
Code : Tout sélectionner
a2enmod ssl
a2ensite default-ssl.conf
systemctl restart apache2
Code : Tout sélectionner
./certbot-auto certonly --preferred-challenges dns-01 --manual --manual-auth-hook ./manual-auth-hook.py --manual-cleanup-hook ./manual-cleanup-hook.py -d jeedom.XXxxXxxX.ovh
de fournir votre adresse mail : renseignez la
si vous acceptez les « règles » : faites Agree
si vous voulez partager votre adresse mail : faites No
et si vous autorisez que votre ip soit loguée : faites Yes
A la fin, vous devez recevoir un Congratulations!
Puis taper la commande :
Code : Tout sélectionner
nano /etc/apache2/sites-enabled/default-ssl.conf
Ajouter le champ : ServerName jeedom.XXxxXxxX.ovh:443, en remplaçant « jeedom.XXxxXxxX.ovh » par votre propre nom de domaine :
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName jeedom.XXxxXxxX.ovh:443
DocumentRoot /var/www/html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
Puis on modifie les champs SSLCertificateFile et SSLCertificateKeyFile avec les nouveaux fichiers, toujours en remplaçant « jeedom.XXxxXxxX.ovh » par votre propre nom de domaine. Je vous ai mis en italique ce qu’il faut supprimer, et en souligné ce qu’il faut rajouter :
# A self-signed (snakeoil) certificate can be created by installing
# the ssl-cert package. See
# /usr/share/doc/apache2/README.Debian.gz for more info.
# If both key and certificate are stored in the same file, only the
# SSLCertificateFile directive is needed.
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem /etc/letsencrypt/live/jeedom.XXxxXxxX.ovh/fullchain.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key /etc/letsencrypt/live/jeedom.XXxxXxxX.ovh/privkey.pem
Faite Exit puis Entrée pour valider
Puis, taper la commande suivante pour redémarrer :
Code : Tout sélectionner
systemctl restart apache2
Code : Tout sélectionner
nano crontab -e
42 6 * * * certbot-auto renew --no-self-upgrade
Puis Exit et Entrée
La methode alternative est de faire la mise a jour manuellement comme ceci :
Placer vous dans le dossier /opt/letsencrypt :
Code : Tout sélectionner
cd /opt/letsencrypt
Code : Tout sélectionner
cd /opt/letsencrypt
./certbot-auto renew --no-self-upgrade
systemctl restart apache2