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:24] – 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' | ||
- | Cette méthode n'est pas la plus simple, mais elle permet de mettre en place [[kb: | + | Cette méthode n'est pas la plus simple, mais elle permet de mettre en place [[kb: |
Pour cela, il faut juste le packet certbot/ | Pour cela, il faut juste le packet certbot/ | ||
Ligne 10: | Ligne 18: | ||
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 | + | |
+ | ====Génération | ||
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 / | + | 0 2 * * * root /opt/renew-cert.sh |
</ | </ | ||
- | ---- | + | et créer le script suivant : |
- | ====Installation de Let's Encrypt==== | + | |
- | Il faudra installer certbot qui est dans les dépôts backports | + | <code bash / |
+ | # | ||
- | < | + | PATH="/ |
- | # apt install letsencrypt | + | cd /etc/ |
- | </code> | + | TEMP=`mktemp -d` |
+ | NOW_SECONDS=`date ' | ||
+ | NEEDTORELOAD=0 | ||
- | ====Création d'un certificat SSL==== | + | for i in * ; do |
+ | END_DATE=`openssl x509 -dates -noout -in ${i}/ | ||
+ | END_DATE_SECONDS=`date '+%s' --date " | ||
+ | REMAINING_DAYS=`echo " | ||
+ | if [ " | ||
+ | NEEDTORELOAD=1 | ||
+ | echo " | ||
+ | mkdir ${TEMP}/ | ||
+ | / | ||
+ | EXITCODE=$? | ||
+ | if [ " | ||
+ | if [ ! -d "/ | ||
+ | mkdir / | ||
+ | fi | ||
+ | mv ${i}/ | ||
+ | mv ${i}/ | ||
+ | mv ${i}/ | ||
+ | mv ${TEMP}/ | ||
+ | fi | ||
+ | else | ||
+ | if [ -t 1 ] ; then | ||
+ | echo " | ||
+ | fi | ||
+ | fi | ||
- | il faudra stopper NginX, Apache ou toutes les applications utilisant le port 80 ou 443 | + | done |
- | < | + | |
- | # service apache2 stop | + | |
- | </ | + | |
- | Création du certificat | + | |
- | < | + | |
- | # letsencrypt certonly --rsa-key-size 4096 -d wiki.virtit.fr | + | |
- | </ | + | |
- | puis suivre les indications. | + | |
- | | + | |
- | ====Renouvellement des certificats==== | + | if [ " |
- | + | echo " | |
- | il faudra stopper Nginx, Apache ou toutes les applications utilisant le port 80 ou 443 | + | systemctl reload nginx |
- | < | + | fi |
- | # service apache2 stop | + | rm -r $TEMP |
- | </ | + | |
- | Puis il suffira de lancer | + | |
- | < | + | |
- | # letsencrypt renew --force-renewal | + | |
</ | </ | ||
- | ====Problèmes rencontrés==== | ||
- | |||
- | En cas de Reverse Proxy, Il faudra un peu plus s' | ||
- | Il faudra | + | Il faudra |
kb/crypto/letsencrypt.1520371490.txt.gz · Dernière modification : 2018/03/06 21:24 de beu