Avant toute chose merci de (re)prendre connaissance de la charte et de la respecter.
Pour résumer :
- Avant de poser une question, je cherche si la réponse existe
- Je suis poli, courtois et je respecte tout un chacun sur le forum
- Si un post m'agace : je m'en éloigne plutôt que de répondre d'une façon qui pourrait être mal interprétée


Il n'est jamais du luxe que de rappeler des choses simples :
Courtoisie, amabilité, politesse et bonne humeur sont les maîtres mots pour un forum sympathique, bienveillant et accueillant :)

Toute la communauté vous remercie

[Tuto] Pour les Nuls : Accès externe en https

Pierrot24
Timide
Messages : 87
Inscription : 01 janv. 2018, 14:57

[Tuto] Pour les Nuls : Accès externe en https

Message par Pierrot24 » 08 févr. 2018, 19:19

J’ai fait ce tutoriel a l’intention des non connaisseurs, comme moi, de la programmation informatique et des finesses d’un certificat SSL, et suite au dysfonctionnement mais a priori temporaire du service de certificat du site Letsencrypt (le plugin Jeedom Letsencrypt marchant lui normalement)

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
Puis taper le password. Celui par défaut pour la Jeedom Smart est : Mjeedom96
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 -
Puis de nouveau le password
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
Taper ensuite les commandes suivantes les unes après les autres :

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/
Placer vous ensuite dans le dossier /opt/letsencrypt :

Code : Tout sélectionner

cd /opt/letsencrypt
Taper les commandes suivantes :

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
Toujours dans le dossier /opt/letsencrypt, taper :

Code : Tout sélectionner

nano ovh.conf
Dans l’éditeur de texte nano, renseigner vos 3 clés API (marquées en XXXXXXX ci-dessous) obtenues précédemment :
[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
Puis la commande suivante en remplaçant le jeedom.XXxxXxxX.ovh par votre propre nom de domaine :

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
A la première fois, il vous sera demandé :
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
Voici les champs a ajouter dans ce fichier nano, avec un extrait du fichier en exemple :
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
Enfin, le certificat SSL étant renouvelé régulièrement, taper la commande suivante pour automatiser sa mise a jour :

Code : Tout sélectionner

nano crontab -e
Puis rentrer dans le fichier nano la ligne suivante :
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
Puis taper les commandes suivantes :

Code : Tout sélectionner

cd /opt/letsencrypt
./certbot-auto renew --no-self-upgrade
systemctl restart apache2
Voila, en esperant que cela aide ceux qui comme moi sont un peu perdu parfois avec ce genre de manipulation, et encore merci a Poluket :)
Dernière édition par Pierrot24 le 10 févr. 2018, 15:01, édité 4 fois.

Avatar de l’utilisateur
Bosquetia
Actif
Messages : 5808
Inscription : 10 mai 2016, 07:54

Re: Acces externe en https : Tutoriel pour les nuls (RESOLU)

Message par Bosquetia » 08 févr. 2018, 19:20

Désolé de te reprendre sur la première phrase de ce tuto, mais il n'y a aucun dysfonctionnement du plugin letsencrypt !!

Pierrot24
Timide
Messages : 87
Inscription : 01 janv. 2018, 14:57

Re: Acces externe en https : Tutoriel pour les nuls (RESOLU)

Message par Pierrot24 » 08 févr. 2018, 19:23

Desolé,
Le probleme est du coté de Letsencrypt, et ne concerne pas le plugin Jeedom en lui-meme

Papounett
Timide
Messages : 6
Inscription : 30 déc. 2017, 20:03

Re: Acces externe en https : Tutoriel pour les nuls (RESOLU)

Message par Papounett » 09 févr. 2018, 11:27

Drapeau.

Merci pour ce tutoriel.
-----
JEEDOM: DEBIAN sur vieux PC Portable
MULTIMEDIA: SYNOLOGY DS418J / Google Home Mini / ChromeCast / TV Toshiba / Freebox Revolution / Freebox Crystal
CHAUFFAGE: HEATZY sur radiateurs électrique
SECURITE: MYFOX_SOMFY HOME ALARM

Avatar de l’utilisateur
poluket
Actif
Messages : 724
Inscription : 19 août 2017, 17:02
Localisation : Chastre - Belgique
Contact :

Re: Acces externe en https : Tutoriel pour les nuls (RESOLU)

Message par poluket » 10 févr. 2018, 14:11

le gros avantage de cette procédure par rapport au plugin, est l'absence de nécessite d'ouvrir jeedom sur internet. moi, j'utilise un VPN ou je limite l’accès au niveau de mon FW a certaines ip connues (boulots ou autres) et de plus en plus les browsers (ie, Chrome) n'aiment plus les certificats self-signed et crée donc des warnings. cette solution correspond le plus a mes besoins. si plein de personnes sont intéressées par cette façon de faire, essayez p-e d'en parler au créateur du plugin pour letsencrypt. il devrait pouvoir l’intégrer assez facilement

PS: il y a la fonction code qui permet d'afficher du code plus facilement dans le forum
Installation KNX + Sonos + Xiaomi Yeelight + Jeedom sur VM Proxmox + wifi unifi avec contrôleur + NAS DS1513+ + UPS + PFsense FW

Pierrot24
Timide
Messages : 87
Inscription : 01 janv. 2018, 14:57

Re: Acces externe en https : Tutoriel pour les nuls (RESOLU)

Message par Pierrot24 » 10 févr. 2018, 14:44

J'aurais idéalement préféré mettre en place un VPN perso (j'ai des problemes avec celui de Jeedom avec des connexions aleatoires), mais je ne sais pas et n'ai pas trouvé de tutoriel pour cela...
Ce serait effectivement super que le plugin Letsencrypt puisse le faire, ou alors un tutoriel a suivre pas a pas... :)

Pierre

Avatar de l’utilisateur
Seki
Actif
Messages : 667
Inscription : 06 sept. 2017, 21:50

Re: Acces externe en https : Tutoriel pour les nuls (RESOLU)

Message par Seki » 10 févr. 2018, 14:44

J'ai suivi ton tuto poluket et ça fonctionne nickel.

Pour le vpn, tu as un serveur chez toi ?
Je me tâte à en mettre un pour accéder à ma box Jeedom.

Envoyé de mon GT-I9100 en utilisant Tapatalk


Pierrot24
Timide
Messages : 87
Inscription : 01 janv. 2018, 14:57

Re: Acces externe en https : Tutoriel pour les nuls (RESOLU)

Message par Pierrot24 » 10 févr. 2018, 15:03

J'ai un Synology qui pourrait faire serveur je pense ?

Avatar de l’utilisateur
Bosquetia
Actif
Messages : 5808
Inscription : 10 mai 2016, 07:54

Re: Acces externe en https : Tutoriel pour les nuls (RESOLU)

Message par Bosquetia » 10 févr. 2018, 15:16

Pierrot24 a écrit :
10 févr. 2018, 15:03
J'ai un Synology qui pourrait faire serveur je pense ?
J'ai changé le titre et mis dans la section tuto...
Pour VPN afin de ne pas poluer ce post, créé un autre post car cela n'a rien à voir avec du https...
Merci pour le tuto.

Verrouillé

Revenir vers « Tutoriels »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité