[Tuto] Obtenir un certificat valide pour Domoticz sous Linux ou Mac

Vous avez crée un script lua dont vous êtes fier, un .sh génial, un programme python hors du commun, un tuto , c'est ici que vous pouvez les partager.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
Chrominator
Messages : 408
Enregistré le : 19 déc. 2015, 07:29

Re: [Tuto] Obtenir un certificat valide pour Domoticz sous Linux ou Mac

Message par Chrominator » 05 janv. 2019, 11:30

Domaine gratuit, choisi chez Azote.org.

Un peu long à obtenir, mais depuis plusieurs mois pas de souci, ça fonctionne.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


vinchz31
Messages : 103
Enregistré le : 21 nov. 2016, 07:51

Re: [Tuto] Obtenir un certificat valide pour Domoticz sous Linux ou Mac

Message par vinchz31 » 05 janv. 2019, 12:36

Merci Chrominator,

Alors, je crois que mon problème c'est que je ne maîtrise pas le fonctionnement des DNSs et que du coup je ne comprends pas ce que je fais réellement. J'ai essayé avec un DNS en "hd.free.fr" et également avec ta méthode (domaine sur la freebox + déclaration DNS) via freeboxos.fr.
pour voir si j'arrivais à générer le certficat ou si j'obtenais un message d'erreur dont tu me parlais (déjà trop de certificat pour les domaines free).


1- Première difficulté, j'ai obtenue l'erreur suivante :
"Problem binding to port 80: Could not bind to IPv4 or IPv6."
Après quelques recherches, j'ai vu qu'il ne fallait pas de serveur sur le port 80 lors de l'execution de la commande car certbot écoute sur le port 80 et ça provoque donc un conflit.
J'ai donc arrêté Domoticz puis Apache et là je vais beaucoup plus loin.

2- Deuxième difficulté :
Que ce soit avec "hd.free.fr" ou avec ta méthode sur freeboxos.fr, j'obtiens à présent systématiquement le message suivant :
" The following errors were reported by the server:
Domain: xxxx.freeboxos.fr
Type: connection
Detail: Fetching
http://xxxx.freeboxos.fr/.well-known/ac ... UJjFgDjcF4:
Connection refused

To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address. Additionally, please check that
your computer has a publicly routable IP address and that no
firewalls are preventing the server from communicating with the
client. If you're using the webroot plugin, you should also verify
that you are serving files from the webroot path you provided."


Or je ne comprends pas où doivent être positionnés les enregistrements DNS A dont il est question.
Je pensais que c'était au niveau même des serveurs DNS (et donc géré par free lors de la déclaration sur l'interface) mais je fais surement erreur car sur l'interface free il est noté dans la partie DNS :
"Vous possédez votre nom de domaine
Vous pouvez associer une entrée DNS (du type machine.mondomain.com) à l'adresse IP de votre connexion. Pour cela il est nécessaire de rajouter dans les entrées DNS de votre domaine un champ (configuration de "mondomaine.com")
machine IN A 81.56.IP.IP
Évidement l'adresse IP 81.56.IP.IP doit être remplacé par celle qui vous a été attribuée.
ATTENTION
la présence du champ A pour votre IP Free HD dans les DNS de votre nom de domaine sera vérifiée. Si ce dernier n'est pas correctement configuré, la personnalisation de votre DNS ne sera pas installée.
Pour pouvoir en bénéficier, remplissez le champ Reverse DNS personnalisé ci-dessous."


Peux-tu donc m'éclairer sur le sujet ? Que dois-je faire pour corriger le problème remonté par Certbot ?
Merci d'avance pour ton aide précieuse !

vinchz31
Messages : 103
Enregistré le : 21 nov. 2016, 07:51

Re: [Tuto] Obtenir un certificat valide pour Domoticz sous Linux ou Mac

Message par vinchz31 » 05 janv. 2019, 13:56

Bon, je viens de trouver : ma redirection de port se faisait sur le port 8080 (pour Domoticz) et non sur le port 80 (nécessaire à Certbot).
J'ai donc passé le step.
Je poursuis :-)

vinchz31
Messages : 103
Enregistré le : 21 nov. 2016, 07:51

Re: [Tuto] Obtenir un certificat valide pour Domoticz sous Linux ou Mac

Message par vinchz31 » 05 janv. 2019, 18:28

Bonsoir Chrominator,

Alors un grand merci à toi car j'ai réussi à installer mon certificat et à faire fonctionner Domoticz depuis l'extérieur de chez moi sans problème en https. Pour ceux que ça peut intéresser et pour compléter ton post, voici exactement ce que j'ai fait (mais qui reprend pas à pas ton tuto !):

1 - Création d'une entrée DNS personnalisée sur le site de free dans mon interface :
Ma FreeBox => Personnaliser mon reverse DNS => Entrée DNS personnalisée => Mettre le nom que l'on souhaite (exemple: TESTDOMOTICZ), ce qui permet de créer le DNS personnalisé TESTDOMOTICZ.hd.free.fr

2 - Création d'une redirection de port sur la FreeBox (se connecter en admin directement sur sa FreeBox) afin de permettre la génération du certificat (accès de certbot en port 80):
Paramètres de la FreeBox => Gestion des ports =>
- IP Destination : l'adresse du serveur qui héberge domoticz (dans mon cas mon Raspberry en 192.168.0.X)
- IP Source : toutes
- Port début = Port fin = 80
- Port destination = 80

3 - Installation de CertBot sur le Raspberry (dans mon cas version Stretch) :
- sudo nano /etc/apt/sources.list
=> Ajouter la ligne : deb http://ftp.debian.org/debian stretch-backports main
- sudo apt-get update
- sudo apt-get install python-certbot-apache -t stretch-backports

4 - Création du certificat :
- Arrêter Domoticz : sudo service domoticz.sh stop
- Arrêter Apache : sudo /etc/init.d/apache2 stop
NB : nécessaire pour que Certbot puisse écouter sur le port 80 lors de la génération du certificat

- sudo certbot certonly --standalone --preferred-challenges tls-sni-01,http,dns --duplicate -dTESTDOMOTICZ.hd.free.fr --dry-run
Pour tester si la génération se passe bien
NB : remplacer TESTDOMOTICZ.hd.free.fr par votre DNS personnalisé réalisé à l'étape 1

- sudo certbot certonly --standalone --preferred-challenges tls-sni-01,http,dns --duplicate -d TESTDOMOTICZ.hd.free.fr
Une fois que génération confirmée

- dans le répertoire domoticz : mkdir CertificatTemp
sudo chmod 777 CertificatTemp
sudo chmod 777 /etc/letsencrypt/live
sudo cat /etc/letsencrypt/live/TESTDOMOTICZ.hd.free.fr/privkey.pem > ~/domoticz/CertificatTemp/cert_domoticz.pem
sudo cat /etc/letsencrypt/live/TESTDOMOTICZ.hd.free.fr/fullchain.pem >> ~/domoticz/CertificatTemp/cert_domoticz.pem
NB : remplacer TESTDOMOTICZ.hd.free.fr par votre DNS personnalisé réalisé à l'étape 1


5- Génération Diffie Hellman et assemblage :
sudo openssl dhparam -out ~/domoticz/CertificatTemp/dhparam.pem 4096
NB: cette génération a pris environ 2h30 à mon Raspberry
sudo cat ~/domoticz/CertificatTemp/dhparam.pem >> ~/domoticz/CertificatTemp/cert_domoticz.pem

6- Intégration du certificat dans Domoticz et redémarrage :
sudo cp CertificatTemp/cert_domoticz.pem ~/domoticz
Arrêt de domoticz: sudo service domoticz.sh stop
Intégration du certificat dans la conf de démarrage de Domoticz :
sudo /etc/init.d/ domoticz.sh
Ajout de la ligne : DAEMON_ARGS="$DAEMON_ARGS -sslcert /home/VOTRENOM/domoticz/cert_domoticz.pem"
NB : remplacer VOTRENOM par le nom du user (ex: pi)

sudo systemctl daemon-reload
sudo service domoticz.sh start

7- Configuration de la redirection de ports:
Sur la Freebox, désactiver la redirection sur le port 80 faite à l'étape 2
Créer une redirection pour le https :
- IP Destination : l'adresse du serveur qui héberge domoticz (dans mon cas mon Raspberry en 192.168.0.X)
- IP Source : toutes
- Port début = Port fin = Le port que vous souhaitez utiliser en https (443 si classique mais vous pouvez utiliser un autre numéro de port)
- Port destination = 443

8- Test :
Depuis l'extérieur, taper l'adresse : https://TESTDOMOTICZ.hd.free.fr (si le port début/fin de l'étape précédente était le 443)
ou https://TESTDOMOTICZ.hd.free.fr:NumPort si vous aviez positionné port début/fin=NumPort à l'étape précédente

...et ça fonctionne ! :-)
Le certificat est valide, délivré par Let"s Encrypt pour une période de 3 mois.

Il va falloir que je regarde comment faire pour automatiser son rebnouvellement...

Très bonne soirée et encore un grand merci à toi, je ne m'en serais pas sorti sans ton tuto !

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Chrominator
Messages : 408
Enregistré le : 19 déc. 2015, 07:29

Re: [Tuto] Obtenir un certificat valide pour Domoticz sous Linux ou Mac

Message par Chrominator » 07 janv. 2019, 01:42

Content si mon post a pu t'aider.
Je modifie le sujet pour renvoyer vers le tiens, très complet.
Merci.

vinchz31
Messages : 103
Enregistré le : 21 nov. 2016, 07:51

Re: [Tuto] Obtenir un certificat valide pour Domoticz sous Linux ou Mac

Message par vinchz31 » 08 mars 2019, 13:12

Je viens de renouveler mon certificat.
Voici donc la démarche à suivre :

1- Installer l'utilitaire permettant de renouveler le certificat :

Code : Tout sélectionner

sudo nano /etc/apt/sources.list
	Ajouter la ligne : deb http://ftp.debian.org/debian stretch-backports main

sudo wget https://dl.eff.org/certbot-auto
sudo chmod 777 /usr/bin/certbot-auto
sudo nano /etc/apt/sources.list

sudo nano /etc/apt/sources.list
	Enlever la ligne : deb http://ftp.debian.org/debian stretch-backports main
2- Arrêter les services WEB qui tournent :

Code : Tout sélectionner

Arrêter Domoticz : sudo service domoticz.sh stop
Arrêter Apache : sudo /etc/init.d/apache2 stop
3 - Création d'une redirection de port sur la FreeBox (se connecter en admin directement sur sa FreeBox) afin de permettre la génération du certificat (accès de certbot en port 80):
Paramètres de la FreeBox => Gestion des ports =>
Port 80 :
- IP Destination : l'adresse du serveur qui héberge domoticz (dans mon cas mon Raspberry en 192.168.0.X)
- IP Source : toutes
- Port début = Port fin = 80
- Port destination = 80
Faire de même avec le port 443 :
- IP Destination : l'adresse du serveur qui héberge domoticz (dans mon cas mon Raspberry en 192.168.0.X)
- IP Source : toutes
- Port début = Port fin = 443
- Port destination = 443

4- Tester le renouvellement pour confirmer que tout est Ok :

Code : Tout sélectionner

sudo /usr/bin/certbot-auto renew --dry-run 
5- Si Ok, procéder au renouvellement du certificat :

Code : Tout sélectionner

sudo /usr/bin/certbot-auto renew
Vous devriez obtenir un retour du type :

Code : Tout sélectionner

Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/TESTDOMOTICZ.hd.free.fr.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert is due for renewal, auto-renewing...
Plugins selected: Authenticator standalone, Installer None
Renewing an existing certificate
Performing the following challenges:
tls-sni-01 challenge for TESTDOMOTICZ.hd.free.fr
TLS-SNI-01 is deprecated, and will stop working soon.
Waiting for verification...
Cleaning up challenges
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all renewals succeeded. The following certs have been renewed:
/etc/letsencrypt/live/TESTDOMOTICZ.hd.free.fr/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NB : remplacer TESTDOMOTICZ.hd.free.fr par votre DNS personnalisé


6- Supprimer les redirections 80 et 443 sur la Freebox


7- Réassemblage du certificat :
NB: réutilisation du Diffie Hellman déjà généré et toujours positionné dans "~/domoticz/CertificatTemp/"

Code : Tout sélectionner

sudo rm ~/domoticz/CertificatTemp/cert_domoticz.pem
sudo cat /etc/letsencrypt/live/TESTDOMOTICZ.hd.free.fr/privkey.pem > ~/domoticz/CertificatTemp/cert_domoticz.pem
sudo cat /etc/letsencrypt/live/TESTDOMOTICZ.hd.free.fr/fullchain.pem >> ~/domoticz/CertificatTemp/cert_domoticz.pem
sudo cat ~/domoticz/CertificatTemp/dhparam.pem >> ~/domoticz/CertificatTemp/cert_domoticz.pem
8- Sauvegarde de l'ancien certificat et installation du nouveau

Code : Tout sélectionner

sudo cp ~/domoticz/cert_domoticz.pem ~/domoticz/cert_domoticz.pemOLD
sudo rm ~/domoticz/cert_domoticz.pem 
sudo cp ~/domoticz/CertificatTemp/cert_domoticz.pem ~/domoticz/
9- Redémarrage du Raspberry

Code : Tout sélectionner

sudo reboot
...et le tour est joué : si vous affichez le certificat dans votre navigateur, vous pourrez constater que la date a changé...

Très bonne journée à tous

Chrominator
Messages : 408
Enregistré le : 19 déc. 2015, 07:29

Re: [Tuto] Obtenir un certificat valide pour Domoticz sous Linux ou Mac

Message par Chrominator » 08 mars 2019, 20:33

Bravo !

Et merci pour ta contribution, j'avoue avoir eu la flemme sur ce coup là :oops:

secator
Messages : 16
Enregistré le : 10 nov. 2018, 18:26

Re: [Tuto] Obtenir un certificat valide pour Domoticz sous Linux ou Mac

Message par secator » 09 mars 2019, 17:17

bonjour,
apparemment il n'est pas possible de renouveler un certificat qui n'est pas expiré. vous confirmez?
merci

Chrominator
Messages : 408
Enregistré le : 19 déc. 2015, 07:29

Re: [Tuto] Obtenir un certificat valide pour Domoticz sous Linux ou Mac

Message par Chrominator » 09 mars 2019, 17:19

Ou proche de l'expiration plutôt.
Tu recevras un email quelques semaines avant l'expiration pour le renouveler.

secator
Messages : 16
Enregistré le : 10 nov. 2018, 18:26

Re: [Tuto] Obtenir un certificat valide pour Domoticz sous Linux ou Mac

Message par secator » 09 mars 2019, 17:23

c'est dommage parce qu'un des renouvellements va tomber en plein pendant mes vacances d'été...... :o :shock:
par contre je ne me souviens pas d'avoir utiliser un email lorsque j'ai créé mon certificat donc je ne vois pas comment je vais être prévenu ?????

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre