kb:crypto:letsencrypt
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
kb:crypto:letsencrypt [2018/03/06 21:55] – beu | kb:crypto:letsencrypt [2022/10/14 09:30] (Version actuelle) – [Signature du certificat] beu | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
======Let' | ======Let' | ||
- | ====Introduction==== | + | ====Comprendre Let's Encrypt==== |
+ | |||
+ | Let's Encrypt est un Autorité de Certification qui est **GRATUITE** et qui permet de signer un certificat de façon automatique et quasi instantané. | ||
+ | |||
+ | Deux méthodes existent pour valider un certificat :\\ | ||
+ | - Par requête HTTP : Lors de la demande de certificat, l'API va effectuer une requête HTTP sur la dites URL dans le répertoire /// | ||
+ | - Par requêtes DNS : Lors de la requête, l'API fera une requête TXT particulière sur le DNS. Celle-ci n'est soit pas automatique ou elle oblige que le serveur WEB puissent mettre à jour sa zone DNS. Bien que plus contraignante, | ||
+ | |||
+ | ====Pourquoi cette méthode==== | ||
L' | L' | ||
Ligne 9: | Ligne 17: | ||
Cette méthode n'est pas éligible au renouvellement automatique de certbot, donc il faudra ajouter manuellement l' | Cette méthode n'est pas éligible au renouvellement automatique de certbot, donc il faudra ajouter manuellement l' | ||
+ | |||
====Génération du certificat==== | ====Génération du certificat==== | ||
Ligne 14: | Ligne 23: | ||
Pour chaque domaines, nous allons créer les dossiers où seront stocké les certificats et les clés: | Pour chaque domaines, nous allons créer les dossiers où seront stocké les certificats et les clés: | ||
- | < | + | < |
- | # mkdir -p /etc/letsencrypt/wiki.virtit.fr/live | + | # mkdir -p /etc/ssl/custom-certbot/{live,archive}/ |
- | # mkdir -p / | + | |
</ | </ | ||
- | puis on génère | + | puis on génère |
- | < | + | < |
- | # openssl ecparam -name prime256v1 -genkey -out /etc/letsencrypt/wiki.virtit.fr/live/ | + | # openssl ecparam -name prime256v1 -genkey -out /etc/ssl/custom-certbot/ |
- | # openssl req -new -key virtit.pem -nodes -days 3650 -out / | + | |
</ | </ | ||
- | Ces certificats seront unique mais pensez à les renouveler | + | Puis le certificat publique |
+ | |||
+ | <code bash> | ||
+ | # openssl req -new -subj "/ | ||
+ | </ | ||
+ | |||
+ | Ces certificats seront unique mais pensez à les renouveler | ||
====Signature du certificat==== | ====Signature du certificat==== | ||
Ligne 32: | Ligne 45: | ||
Pour signer votre certificat, il faut lancer la commande suivante : | Pour signer votre certificat, il faut lancer la commande suivante : | ||
- | < | + | < |
- | # certbot certonly --webroot -w / | + | # certbot certonly --webroot -w / |
</ | </ | ||
====Renouvellement du certificat==== | ====Renouvellement du certificat==== | ||
- | Pour renouveler le certificat, | + | Pour renouveler le certificat, |
Je vous conseil d' | Je vous conseil d' | ||
- | < | + | < |
- | 0 2 * * * /bin/rm /etc/letsencrypt/wiki.virtit.fr/archive/* && | + | 0 2 * * * root /opt/renew-cert.sh |
+ | </code> | ||
+ | |||
+ | et créer le script suivant : | ||
+ | |||
+ | <code bash /opt/renew-cert.sh> | ||
+ | #!/usr/bin/env bash | ||
+ | |||
+ | PATH="/ | ||
+ | cd /etc/ssl/custom-certbot/live/ | ||
+ | TEMP=`mktemp -d` | ||
+ | NOW_SECONDS=`date ' | ||
+ | NEEDTORELOAD=0 | ||
+ | |||
+ | for i in * ; do | ||
+ | END_DATE=`openssl x509 -dates -noout -in ${i}/cert.pem 2>/dev/null | sed -n 's/ *notAfter=*//p'` | ||
+ | END_DATE_SECONDS=`date ' | ||
+ | REMAINING_DAYS=`echo " | ||
+ | if [ " | ||
+ | NEEDTORELOAD=1 | ||
+ | echo " | ||
+ | mkdir ${TEMP}/ | ||
+ | / | ||
+ | EXITCODE=$? | ||
+ | if [ " | ||
+ | if [ ! -d "/ | ||
+ | mkdir | ||
+ | fi | ||
+ | mv ${i}/cert.pem | ||
+ | mv ${i}/ | ||
+ | mv ${i}/ | ||
+ | mv ${TEMP}/${i}/* ${i}/ | ||
+ | fi | ||
+ | else | ||
+ | if [ -t 1 ] ; then | ||
+ | echo " | ||
+ | fi | ||
+ | fi | ||
+ | |||
+ | done | ||
+ | |||
+ | if [ " | ||
+ | echo " | ||
+ | systemctl reload | ||
+ | fi | ||
+ | rm -r $TEMP | ||
</ | </ | ||
- | Il faudra | + | Il faudra le rendre exécutable, |
kb/crypto/letsencrypt.1520373319.txt.gz · Dernière modification : 2018/03/06 21:55 de beu