Refonte
This commit is contained in:
parent
d82558dccf
commit
d1b033116a
|
@ -1,63 +1,60 @@
|
|||
# Howto LetsEncrypt
|
||||
---
|
||||
categories: web security
|
||||
title: Howto Let's Encrypt
|
||||
...
|
||||
|
||||
Documentation officielle : <https://letsencrypt.org/docs/>
|
||||
* Documentation : <https://letsencrypt.org/docs/>
|
||||
* Rôle Ansible : <https://forge.evolix.org/projects/ansible-roles/repository/revisions/unstable/show/evoacme>
|
||||
|
||||
Dans tout les cas, il faut un client pour communiquer avec les serveurs de Let's Encrypt et obtenir le certificat. Il en existe plusieurs. L'officiel est <https://certbot.eff.org/>
|
||||
Let's Encrypt est l'autorité de certification a l'origine du protocole ACME, elle permet l'obtention de certificat SSL gratuit de manière automatisé.
|
||||
|
||||
Un client ACME est nécessaire pour communiquer avec les serveurs de Let's Encrypt et obtenir un certificat. Il en existe plusieurs.
|
||||
|
||||
## Client officiel (Certbot)
|
||||
|
||||
Certbot est disponible en paquet sous Debian à partir des backports de Jessie.
|
||||
[Certbot](https://certbot.eff.org/) est le client officiel de Let's Encrypt, il est disponible en paquet sous Debian à partir des backports de Jessie.
|
||||
|
||||
Pour l'installer, il faut donc être en Debian Jessie avec les backports de configurés, puis :
|
||||
Pour l'installer sous Jessie, il faut avoir activé les backports, puis :
|
||||
|
||||
~~~
|
||||
# apt install certbot -t jessie-backports
|
||||
apt install certbot -t jessie-backports
|
||||
~~~
|
||||
|
||||
### Création d'un utilisateur dédié
|
||||
|
||||
Afin de ne pas faire tourner certbot avec l'utilisateur root et de ne pas lui donner accès aux clés SSL, nous allons faire tourner certbot avec un utilisateur dédié.
|
||||
|
||||
Premièrement, penser à supprimer la tâche cron par défaut de certbot qui est lancé en root :
|
||||
Premièrement, il faut supprimer la tâche cron par défaut du paquet certbot qui est lance la commande certbot en root :
|
||||
|
||||
~~~
|
||||
rm /etc/cron.d/certbot
|
||||
~~~
|
||||
|
||||
Ensuite créer l'utilisateur dédié à certbot (ici "acme") et corriger les droits en consequences :
|
||||
Ensuite on crée un utilisateur dédié à certbot (ici "acme") et on corrige les droits en conséquence :
|
||||
|
||||
~~~
|
||||
useradd acme -d /etc/letsencrypt
|
||||
mkdir /etc/letsencrypt /var/log/letsencrypt /var/lib/letsencrypt
|
||||
mkdir -p /etc/letsencrypt /var/log/letsencrypt /var/lib/letsencrypt
|
||||
chmod 755 /etc/letsencrypt /var/log/letsencrypt /var/lib/letsencrypt
|
||||
chown acme: /etc/letsencrypt /var/log/letsencrypt /var/lib/letsencrypt
|
||||
~~~
|
||||
|
||||
Puis ajouter la commande de renouvellement dans la crontab de l'utilisateur acme :
|
||||
|
||||
~~~
|
||||
# On ouvre la crontab de acme
|
||||
crontab -u acme -e
|
||||
# Et on rajoute la ligne suivante
|
||||
0 0,12 * * * certbot renew -q
|
||||
~~~
|
||||
|
||||
### Configuration du Serveur Web
|
||||
|
||||
#### Apache
|
||||
|
||||
Créer le fichier dans /etc/apache2/conf-available/letsencrypt.conf avec :
|
||||
Créer le fichier /etc/apache2/conf-available/letsencrypt.conf avec :
|
||||
|
||||
~~~
|
||||
SetEnvIf Request_URI "/.well-known/acme-challenge/*" no-jk
|
||||
Alias /.well-known/acme-challenge /var/lib/letsencrypt/.well-known/acme-challenge
|
||||
<Directory "/var/lib/letsencrypt/.well-known/acme-challenge">
|
||||
Options -Indexes
|
||||
AllowOverride all
|
||||
Allow from all
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
~~~
|
||||
|
||||
Puis activer ce fichier :
|
||||
|
||||
~~~
|
||||
|
@ -66,6 +63,20 @@ apache2ctl -t
|
|||
service apache2 reload
|
||||
~~~
|
||||
|
||||
#### Nginx
|
||||
|
||||
Créer le fichier /etc/nginx/letsencrypt.conf :
|
||||
|
||||
~~~
|
||||
location /.well-known/acme-challenge {
|
||||
alias /var/lib/letsencrypt/.well-known/acme-challenge;
|
||||
try_files $uri =404;
|
||||
allow all;
|
||||
}
|
||||
~~~
|
||||
|
||||
Il faudra ensuite inclure ce fichier dans chaque vhost utilisant Let's Encrypt.
|
||||
|
||||
### Génération du certificat
|
||||
|
||||
Générér une clé SSL dans /etc/ssl/private et un CSR (voir [HowtoSSL](http://wiki.evolix.org/HowtoSSL)) :
|
||||
|
@ -74,7 +85,7 @@ Générér une clé SSL dans /etc/ssl/private et un CSR (voir [HowtoSSL](http://
|
|||
openssl req -newkey rsa:2048 -sha256 -nodes -keyout /etc/ssl/private/ma-cle.ssl -out mon-csr.csr
|
||||
~~~
|
||||
|
||||
Faire la demande de certificat (avec l'utilisateur acme, le csr doit être accesible en lecture à cet utilisateur) :
|
||||
Faire la demande de certificat (avec l'utilisateur acme, le csr doit être accessible en lecture à cet utilisateur) :
|
||||
|
||||
~~~
|
||||
sudo -u acme certbot certonly --webroot --csr mon-csr.csr --webroot-path /var/lib/letsencrypt -n --agree-tos --cert-path=/etc/letsencrypt/mon-cert.crt --fullchain-path=/etc/letsencrypt/mon-cert-fullchain.pem --chain-path=/etc/letsencrypt/mon-cert-chain.pem email@example.com
|
||||
|
@ -84,5 +95,5 @@ Votre certificat est maintenant présent dans /etc/letsencrypt/mon-cert.crt !
|
|||
|
||||
## Automatisation
|
||||
|
||||
Pour simplifier l'installation et la configuration de certbot ainsi que la génération de CSR et de certificat, Evolix a créé le projet [Evoacme](https://forge.evolix.org/projects/ansible-roles/repository/show/evoacme?utf8=%E2%9C%93&rev=stable).
|
||||
Pour simplifier l'installation et la configuration de Certbot ainsi que la génération de CSR et de certificat, Evolix a créé le projet [Evoacme](https://forge.evolix.org/projects/ansible-roles/repository/revisions/unstable/show/evoacme).
|
||||
|
||||
|
|
Loading…
Reference in a new issue