Ajout section debian 9 + section erreur Unexpected value for no-self-upgrade + amélioration sommaire
This commit is contained in:
parent
32d731fee7
commit
d590b0a3b2
|
@ -13,7 +13,7 @@ ce qui nécessite d'avoir temporairement un serveur HTTP sur le port TCP/80 de l
|
|||
Le certificat intermédiaire de Let's Encrypt est également signé par l'autorité de certification [IdenTrust](https://www.identrust.com/) préinstallée dans la plupart des navigateurs.
|
||||
|
||||
|
||||
## Installation
|
||||
# Installation
|
||||
|
||||
On installe certbot et ses dépendances :
|
||||
|
||||
|
@ -24,13 +24,13 @@ $ certbot --version
|
|||
certbot 1.12.0
|
||||
~~~
|
||||
|
||||
###
|
||||
|
||||
### Configuration du Serveur Web
|
||||
## Configuration du Serveur Web
|
||||
|
||||
Pour vérifier que la demande est légitime, Let's Encrypt doit accéder à un fichier temporaire via HTTP sur le port TCP/80 de l'adresse IP correspondant au _Common Name_ du certificat à signer, du type *http://www.example.com/.well-known/acme-challenge/hNgN_ygEFf-XiHJd6VErwNbfRcpP2CbJmIN3qpJXZOQ*
|
||||
|
||||
#### Apache
|
||||
|
||||
### Apache
|
||||
|
||||
Configuration :
|
||||
|
||||
|
@ -48,7 +48,8 @@ Alias /.well-known/acme-challenge /var/lib/letsencrypt/.well-known/acme-challeng
|
|||
</Directory>
|
||||
~~~
|
||||
|
||||
#### Nginx
|
||||
|
||||
### Nginx
|
||||
|
||||
Préférez importer le snippet `/etc/nginx/snippets/letsencrypt.conf`, mais si une configuration manuelle est nécessaire:
|
||||
|
||||
|
@ -73,6 +74,8 @@ location ~ /.well-known/acme-challenge {
|
|||
~~~
|
||||
|
||||
|
||||
# Utilisation
|
||||
|
||||
## Génération du certificat
|
||||
|
||||
~~~
|
||||
|
@ -85,6 +88,7 @@ Pour faire les actions normalement sauf la génération du certificat et la modi
|
|||
|
||||
En combinant `--test-cert` et `--dry-run` on peut donc faire un test de génération de certificat sans modification locale et sans risque de pénalisation en cas d'échex répétés.
|
||||
|
||||
|
||||
## Renouvellement du certificat
|
||||
|
||||
Les certificats Let's Encrypt sont valables 90 jours. Un timer systemd roule automatiquement à chaque jour pour revalider le certificat.
|
||||
|
@ -203,14 +207,14 @@ Pour exécuter un hook manuellement, par exemple après la création du certific
|
|||
$ VERBOSE=1 RENEWED_LINEAGE=/etc/letsencrypt/live/<cert-name> /etc/letsencrypt/renewal-hooks/deploy/<hook>.sh
|
||||
~~~
|
||||
|
||||
#
|
||||
|
||||
## Lister les certificats
|
||||
## Liste des certificats
|
||||
|
||||
~~~
|
||||
# certbot certificates
|
||||
~~~
|
||||
|
||||
|
||||
## Suppression d'un certificat
|
||||
|
||||
~~~
|
||||
|
@ -223,17 +227,7 @@ $ VERBOSE=1 RENEWED_LINEAGE=/etc/letsencrypt/live/<cert-name> /etc/letsencrypt/r
|
|||
Pour automatiser l'installation de _Certbot_ et la génération/renouvellement de certificats, nous utilisons des scripts : [Evoacme](https://forge.evolix.org/projects/ansible-roles/repository/revisions/stable/show/certbot).
|
||||
|
||||
|
||||
## FAQ
|
||||
|
||||
### Certificat Wildcard ou EV
|
||||
|
||||
Let's Encrypt permet de générer un certificat Wildcard (via challenge DNS) mais pas EV (Extended Validation).
|
||||
|
||||
### Je n'ai pas de port TCP/80 accessible
|
||||
|
||||
Let's Encrypt vérifie la légitimité de la demande en faisant une requête DNS sur l'enregistrement DNS correspondant au _Common Name_ du certificat à signer (si il n'y a pas d'enregistrement DNS propagé mondialement, c'est donc impossible d'utiliser Let's Encrypt) et effectue une requête HTTP vers le port TCP/80 de l'adresse IP : il faut donc obligatoirement avoir temporairement un service HTTP sur le port TCP/80... au moins temporairement.
|
||||
|
||||
### Challenge DNS
|
||||
## Challenge DNS
|
||||
|
||||
Si notre serveur web n'est pas accessible de l'extérieur, on peut utiliser un challenge par DNS plutôt que via une page HTTP.
|
||||
|
||||
|
@ -244,19 +238,10 @@ $ certbot -d domain.example.com --manual --preferred-challenges dns certonly
|
|||
Il suffira alors de créer l'entrée DNS que certbot affichera et continuer le processus interactif.
|
||||
|
||||
|
||||
### Rate-limits
|
||||
# Mises-à-jour
|
||||
|
||||
Doc officielle : <https://letsencrypt.org/docs/rate-limits/>
|
||||
|
||||
L'API de Let's Encrypt dispose un « rate limiting » afin d'éviter les abus.
|
||||
|
||||
- 20 certificats pour 1 domaine maximum par semaine. 1 domaine est la partie juste avant le TLD. www.example.com, le domaine est example.com. blog.exemple.fr, le domaine est exemple.fr ; Si vous faites 1 certificat par sous-domaines, vous êtes donc limités à 20 par semaine. Il est donc préférable de regrouper plusieurs sous-domaines dans un seul certificat (SAN). La limite du SAN est de 100 sous-domaines. La limite est donc de 2000 certificats pour 1 domaine par semaine si vous mettez 100 sous-domaines par certificats.
|
||||
- La limite de renouvellement d'un certificat est de 5 par semaine. Si votre procédure de renouvellement automatique échoue, au bout de 5 jours vous allez être banni pendant 1 semaine.
|
||||
- La limite d'échec de validation du challenge est de 5 par heures (par adresse IP et utilisateur enregistré par email) ;
|
||||
|
||||
Si vous échouez 5 fois à valider le challenge DNS, on peut penser qu'il suffit d'attendre 1h, sauf qu'en fait non. Le « bannissement » est pour 1 semaine !
|
||||
|
||||
### Mettre à jour certbot en debian 8, suite a l'arret du protocole ACMEv1
|
||||
## Mise-à-jour de certbot en Debian 8 (suite a l’arrêt du protocole ACMEv1)
|
||||
|
||||
On désinstalle le paquet certbot :
|
||||
|
||||
|
@ -282,7 +267,63 @@ Il faut remplacer certbot par le script letsencrypt-auto comme ceci :
|
|||
# ln -s /usr/local/bin/letsencrypt-auto /usr/local/bin/certbot
|
||||
~~~
|
||||
|
||||
### Erreur de renouvellement liée à webroot_path
|
||||
|
||||
## Mise-à-jour de certbot en Debian 9
|
||||
|
||||
Si `/usr/local/bin/certbot` est présent :
|
||||
|
||||
~~~bash
|
||||
mv /usr/local/bin/certbot /usr/local/bin/certbot.bak
|
||||
hash -d certbot # renouvelle le cache des exécutables de bash
|
||||
~~~
|
||||
|
||||
Dans `/etc/letsencrypt/cli.ini`, si la ligne `no-self-upgrade = 0`, commentez-la.
|
||||
|
||||
Réinstallez ou mettez-à-jour la version de certbot présent dans les dépôts Debian :
|
||||
|
||||
~~~bash
|
||||
apt install certbot
|
||||
~~~
|
||||
|
||||
A présent, testez votre installation avec la commande `certbot certificates`.
|
||||
|
||||
En l'abence ou en cas d'oubli des modifications précédentes, on rencontre les erreurs :
|
||||
|
||||
~~~
|
||||
Skipping bootstrap because certbot-auto is deprecated on this system.
|
||||
Your system is not supported by certbot-auto anymore.
|
||||
Certbot cannot be installed.
|
||||
Please visit https://certbot.eff.org/ to check for other alternatives.
|
||||
~~~
|
||||
|
||||
|
||||
# Troubleshooting
|
||||
|
||||
|
||||
## Certificat Wildcard ou EV
|
||||
|
||||
Let's Encrypt permet de générer un certificat Wildcard (via challenge DNS) mais pas EV (Extended Validation).
|
||||
|
||||
|
||||
## Je n'ai pas de port TCP/80 accessible
|
||||
|
||||
Let's Encrypt vérifie la légitimité de la demande en faisant une requête DNS sur l'enregistrement DNS correspondant au _Common Name_ du certificat à signer (si il n'y a pas d'enregistrement DNS propagé mondialement, c'est donc impossible d'utiliser Let's Encrypt) et effectue une requête HTTP vers le port TCP/80 de l'adresse IP : il faut donc obligatoirement avoir temporairement un service HTTP sur le port TCP/80... au moins temporairement.
|
||||
|
||||
|
||||
## Rate-limits
|
||||
|
||||
Doc officielle : <https://letsencrypt.org/docs/rate-limits/>
|
||||
|
||||
L'API de Let's Encrypt dispose un « rate limiting » afin d'éviter les abus.
|
||||
|
||||
- 20 certificats pour 1 domaine maximum par semaine. 1 domaine est la partie juste avant le TLD. www.example.com, le domaine est example.com. blog.exemple.fr, le domaine est exemple.fr ; Si vous faites 1 certificat par sous-domaines, vous êtes donc limités à 20 par semaine. Il est donc préférable de regrouper plusieurs sous-domaines dans un seul certificat (SAN). La limite du SAN est de 100 sous-domaines. La limite est donc de 2000 certificats pour 1 domaine par semaine si vous mettez 100 sous-domaines par certificats.
|
||||
- La limite de renouvellement d'un certificat est de 5 par semaine. Si votre procédure de renouvellement automatique échoue, au bout de 5 jours vous allez être banni pendant 1 semaine.
|
||||
- La limite d'échec de validation du challenge est de 5 par heures (par adresse IP et utilisateur enregistré par email) ;
|
||||
|
||||
Si vous échouez 5 fois à valider le challenge DNS, on peut penser qu'il suffit d'attendre 1h, sauf qu'en fait non. Le « bannissement » est pour 1 semaine !
|
||||
|
||||
|
||||
## Erreur de renouvellement liée à webroot_path
|
||||
|
||||
Il arrive que la configuration de renouvellement d'un certificat "déconne" et perde une partie de la configuration, entrainant une impossibilité de renouvellement.
|
||||
|
||||
|
@ -307,7 +348,7 @@ Voici le correctif :
|
|||
~~~
|
||||
|
||||
|
||||
### Incident avec le certificat DST X3 du 30 septembre 2021
|
||||
## Incident avec le certificat DST X3 du 30 septembre 2021
|
||||
|
||||
Le 30 septembre 2021, le certificat DST X3 d'IdenTrust a expiré, provoquant de nombreux effets de bord.
|
||||
Plus d'explications sur <https://blog.evolix.com/expiration-du-certificat-identrust-dst-x3-et-lets-encrypt/>
|
||||
|
@ -341,3 +382,16 @@ Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5
|
|||
Attention, au prochain renouvellement Let's Encrypt celui-ci va revenir !
|
||||
|
||||
Pour le bannir définitivement, il faut avoir un certbot récent et utiliser l'option `–preferred-chain`.
|
||||
|
||||
|
||||
## Erreur : Unexpected value for no-self-upgrade
|
||||
|
||||
Si vous rencontrez l'erreur suivante alors que vous n'avez pas fournit l'option `--no-self-upgrade` en argument :
|
||||
|
||||
~~~
|
||||
certbot: error: Unexpected value for no-self-upgrade: '0'. Expecting 'true', 'false', 'yes', or 'no'
|
||||
~~~
|
||||
|
||||
Dans `/etc/letsencrypt/cli.ini`, si elle est présente, commentez la ligne `no-self-upgrade = 0`.
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue