Renouvellement certificat Letsencrypt
Re: Renouvellement certificat Letsencrypt
J'ai un ami qui va s'installer un domoticz sur Raspberry. Si on veut lui installer un accès a distance, le top serait un renouvelement automatique du certifcat. Personne à de lien qui explique comment faire ?? Merci d'avance pour votre retour
-
Chrominator
- Messages : 1042
- Inscription : 19 déc. 2015, 07:29
- Localisation : France
Re: Renouvellement certificat Letsencrypt
Ca se fait tout seul maintenant si on suit le tuto de certbot, les ajouts dans la crontab ou dans les services renouvelleront automatiquement le certificat.
- Pièces jointes
-
- Screenshot 2022-02-15 at 20-28-07 Certbot Instructions.png (10.79 Kio) Consulté 2852 fois
Un bon frein vaut mieux que deux sparadraps.
Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
-
pierrotori
- Messages : 821
- Inscription : 29 févr. 2016, 12:11
Re: Renouvellement certificat Letsencrypt
bonsoir
j'ai installé un container certbot et je voudrais utiliser un port comme 45678 pour accéder à domoticz en https, j'ai vu que l'on pouvait utiliser dns afin de ne pas ouvrir le port 80 pour la validation du certificat
Mais entre le webroot et le chemin du DNS TXT qui est demandé , je n'arrive pas à valider mon certificat
je passe cette commande
merci pour votre aide
j'ai installé un container certbot et je voudrais utiliser un port comme 45678 pour accéder à domoticz en https, j'ai vu que l'on pouvait utiliser dns afin de ne pas ouvrir le port 80 pour la validation du certificat
Mais entre le webroot et le chemin du DNS TXT qui est demandé , je n'arrive pas à valider mon certificat
je passe cette commande
Code : Tout sélectionner
sudo docker run -it --rm --name certbot -v "/home/pi/certbot/etc/letsencrypt:/etc/letsencrypt" -v "/home/pi/certbot/var/lib/letsencrypt:/var/lib/letsencrypt" certbot/certbot certonly --webroot --preferred-challenges dns -m <email> -d <domaine>-
pierrotori
- Messages : 821
- Inscription : 29 févr. 2016, 12:11
Renouvellement certificat Letsencrypt
bonjour
je devais faire l’action de renouveler mon certificat
et je me retrouve avec l’erreur 400, mais certbot n’arrive pas a telecharger le certificat, j’ai créé les repertoires avec le max de droits, mais impossible de passer cette étape
avez vous deja rencontre ce problème?
je devais faire l’action de renouveler mon certificat
et je me retrouve avec l’erreur 400, mais certbot n’arrive pas a telecharger le certificat, j’ai créé les repertoires avec le max de droits, mais impossible de passer cette étape
avez vous deja rencontre ce problème?
Re: Renouvellement certificat Letsencrypt
Il ne manquerait pas les hook pre/post permettant d'ouvrir le FW en http, entre autres?
J'ai pour ma part un script unique en lien symbolique vers /etc/letsencrypt/renewal-hooks/pre (+post/deploy). Comme je peux pas commander cela de la box, c'est ouvert par défaut de ce côté vers le PI et c'est le FW du PI qui est ouvre/ferme automatiquement le http via ces hooks pour le renouvellement.
Il y a moyen de tester (et mieux voir ces erreurs exactes?) via:
Code : Tout sélectionner
sudo certbot renew --dry-run-
pierrotori
- Messages : 821
- Inscription : 29 févr. 2016, 12:11
Re: Renouvellement certificat Letsencrypt
j'ai cassé ma config certbot en faisant des tests, du coup j'ai fait la commande sans le webroot
je viens de voir pour le sujet des hook, https://university.itametis.com/fr/arti ... te_renewal, interressant
je viens de repasser ma commande et sur ma box je laisse passer
443-> 8443 et 80 -> 8080 (paramétrage de mon container domoticz)
et j'ai cette erreur
certbot crée bien le fichier dans .well-known/acme-challenge/_vz9aMptNQPW1-vahDtfrGAsAlGguv0UQwxMs4nLW4A, mais il n'arrive pas à le télécharger, j'ai essayé avec un wget meme problème et en sudo
Code : Tout sélectionner
certbot certonly --standaloneje viens de repasser ma commande et sur ma box je laisse passer
443-> 8443 et 80 -> 8080 (paramétrage de mon container domoticz)
Code : Tout sélectionner
docker run -it --rm --name certbot -e "TZ=Europe/Paris" -v "/home/pi/certbot/etc/letsencrypt:/etc/letsencrypt" -v "/home/pi/certbot/var/lib/letsencrypt:/var/lib/letsencrypt" -v "/var/log:/var/log" -v "/home/pi/domoticz/www:/var/www:rw" certbot/certbot certonly --webroot --preferred-challenges http-01 -w /var/www/ -d <mondomaine> -m <monemail> --dry-runCode : Tout sélectionner
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Simulating renewal of an existing certificate for <mondomaine>
Certbot failed to authenticate some domains (authenticator: webroot). The Certificate Authority reported these problems:
Domain: <mondomaine>
Type: unauthorized
Detail: <monip>: Invalid response from http://<mondomaine>/.well-known/acme-challenge/_vz9aMptNQPW1-vahDtfrGAsAlGguv0UQwxMs4nLW4A: 400
Hint: The Certificate Authority failed to download the temporary challenge files created by Certbot. Ensure that the listed domains serve their content from the provided --webroot-path/-w and that files created there can be downloaded from the internet.
Some challenges have failed.
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.
Re: Renouvellement certificat Letsencrypt
Le port http à laisser passer durant le renew certbot n'est pas le port utilisé par Domoticz, l'updater monte son propre serveur http en fait et j'ai pas souvenir que le port était configurable. Chez moi le 8080 de Domoticz n'a aucune règle NAT et c'est 80->80 ouvert box et seulement le temps utile pour certbot ce même 80 côté PI (via ufw).pierrotori a écrit : 28 déc. 2023, 19:27 je viens de repasser ma commande et sur ma box je laisse passer
443-> 8443 et 80 -> 8080 (paramétrage de mon container domoticz)
Cela fonctionne depuis des années, donc souvenir peu présent même si l'année dernière une réinstall complète (raspbian+domoticz, avec passage de tout en 64bit sur un PI3B) m'avait fait remettre des notes à jour que je pourrais copier au besoin (avec le script des hooks) après avoir caviardé si besoin les infos perso. Mais point de conteneurs chez moi, faudra adapter.
-
pierrotori
- Messages : 821
- Inscription : 29 févr. 2016, 12:11
Re: Renouvellement certificat Letsencrypt
je viens d'essayer avec 80->80, j'ai cette erreur : Connection refused
Code : Tout sélectionner
Certbot failed to authenticate some domains (authenticator: webroot). The Certificate Authority reported these problems:
Domain: <mondomaine>
Type: connection
Detail: <monip>: Fetching http://<mondomaine>/.well-known/acme-challenge/cS-hsIZRS350B6JqAIlepel3FJs8wvS_Xly1f3Cqo1c: Connection refused
Re: Renouvellement certificat Letsencrypt
Avant cela, on a:
Certbot failed to authenticate some domains
Incohérence domaine/IP? Ou de DNS (dynamique)?
J'utilise pour ma part un domaine no-ip, en gratuit, qui n'a pas posé ces pb.
En tout cas cela me semble avoir progressé vs situation précédente.
Certbot failed to authenticate some domains
Incohérence domaine/IP? Ou de DNS (dynamique)?
J'utilise pour ma part un domaine no-ip, en gratuit, qui n'a pas posé ces pb.
En tout cas cela me semble avoir progressé vs situation précédente.
Dernière modification par Keros le 29 déc. 2023, 21:00, modifié 1 fois.
Raison : Citation supprimée. Merci de ne pas citer le message précédent lors d'une réponse directe.
Raison : Citation supprimée. Merci de ne pas citer le message précédent lors d'une réponse directe.
Re: Renouvellement certificat Letsencrypt
Mes notes concernant install/config certbot (ufw est utilisé en FW/préalablement installé/configuré pour ne laisser passer que https en temps normal de partout, le 8080 de domoticz pour le réseau local, le 80/http est utilisé part certbot ouvert par le script de hook) ; MON_DOMAINE.com est mon domaine "dyndns" (passé à no-ip depuis que dyndns est deven payant y'a au moins 5 ans)...
Le script updCertDomoticz mis en lien (unique, chaque cas/hook traité via nom appel/lien):
Code : Tout sélectionner
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo ufw allow http (+BOX !!!)
sudo certbot certonly --standalone
sudo ufw delete allow http
sudo ln -s /home/pi/scripts/updCertDomoticz.sh /etc/letsencrypt/renewal-hooks/pre
sudo ln -s /home/pi/scripts/updCertDomoticz.sh /etc/letsencrypt/renewal-hooks/post
sudo ln -s /home/pi/scripts/updCertDomoticz.sh /etc/letsencrypt/renewal-hooks/deploy
sudo cat /etc/letsencrypt/live/MON_DOMAINE.com/privkey.pem > ~/domoticz/server_cert.pem
sudo cat /etc/letsencrypt/live/MON_DOMAINE.com/fullchain.pem >> ~/domoticz/server_cert.pem
sudo cp ~/domoticz/server_cert.pem ~/domoticz/letsencrypt_server_cert.pem
sudo tail -n 8 ~/domoticz/server_cert.pem.org >> ~/domoticz/server_cert.pem
Test:
sudo certbot renew --dry-run
Port 80 utilise pour renouvellement, cf updCertDomoticz.sh
/home/XXX/domoticz/server_cert.pem.org
Est en fait une copie préalable du server_cert.pem présent d'origine avec le certificat par défaut. Une petite partie est réutilisée car sinon c'est assez long à générer sur PI.
Code : Tout sélectionner
#!/bin/bash
# 1st save original domoticz cert file according to DOMO_CORG value
# Must be linked to renewal hooks:
# sudo ln -s /home/pi/scripts/updCertDomoticz.sh /etc/letsencrypt/renewal-hooks/post
# sudo ln -s /home/pi/scripts/updCertDomoticz.sh /etc/letsencrypt/renewal-hooks/pre
# sudo ln -s /home/pi/scripts/updCertDomoticz.sh /etc/letsencrypt/renewal-hooks/deploy
# TEST: Cerbot use http/80 for renewal, so port must be open/NATed on router and will
# be opened/closed on target ufw firewall just during cert update...
# sudo certbot renew --dry-run
# Change according to used domoticz user/path if needed,
# DOMO_CERT file must match /etc/init.d/domoticz.sh -sslcert setup!!!
DOMO_CERT=/home/pi/domoticz/server_cert_dom.pem
DOMO_CORG=/home/pi/domoticz/server_cert.pem.org
# Change to domoticz used domain configured for certbot/letencrypt:
PKEY_FILE=/etc/letsencrypt/live/MON_DOMAINE.com/privkey.pem
FCHN_FILE=/etc/letsencrypt/live/MON_DOMAINE.com/fullchain.pem
BN=$(cd "$(dirname "$0")" && pwd)
#echo $BN
HOOK=${BN##*/}
#echo $HOOK
if [ ${HOOK} == 'pre' ]
then
echo "Open FW..."
ufw allow http
sleep 2
echo "FW opened!"
exit 0
fi
if [ ${HOOK} == 'post' ]
then
echo "Close FW."
ufw delete allow http
# Print last file upgrade in seconds?
LAST_PKEY_SEC=$(( `date +%s` - `stat -L --format %Y $PKEY_FILE` ))
echo "Last cert update (sec) : "${LAST_PKEY_SEC}
exit 0
fi
if [ ${HOOK} == 'deploy' ]
then
echo "Certbot: New cert deploy!"
cat $PKEY_FILE > $DOMO_CERT
cat $FCHN_FILE >> $DOMO_CERT
tail -n 8 $DOMO_CORG >> $DOMO_CERT
echo "Restarting Domoticz..."
/etc/init.d/domoticz.sh restart
echo "Cert update done !"
exit 0
fi
echo "Bad execution path : "${BN}
exit 1