91 lines
3.1 KiB
Markdown
91 lines
3.1 KiB
Markdown
**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.**
|
||
|
||
# Howto LetsEncrypt
|
||
|
||
Documentation officielle : <https://letsencrypt.org/docs/>
|
||
|
||
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/>
|
||
|
||
## Client officiel (Certbot)
|
||
|
||
Certbot 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 :
|
||
|
||
~~~
|
||
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 :
|
||
|
||
~~~
|
||
rm /etc/cron.d/certbot
|
||
~~~
|
||
|
||
Ensuite créer l'utilisateur dédié à certbot (ici "acme") et corriger les droits en consequences :
|
||
|
||
~~~
|
||
useradd acme -d /etc/letsencrypt
|
||
mkdir /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 :
|
||
|
||
~~~
|
||
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
|
||
Require all granted
|
||
</Directory>
|
||
|
||
~~~
|
||
Puis activer ce fichier :
|
||
|
||
~~~
|
||
ln -s /etc/apache2/conf-available/letsencrypt.conf /etc/apache2/conf-enabled/letsencrypt.conf
|
||
apache2ctl -t
|
||
service apache2 reload
|
||
~~~
|
||
|
||
### Génération du certificat
|
||
|
||
Générér une clé SSL dans /etc/ssl/private et un CSR (voir [HowtoSSL](http://trac.evolix.net/infogerance/wiki/HowtoSSL)) :
|
||
|
||
~~~
|
||
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) :
|
||
|
||
~~~
|
||
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
|
||
~~~
|
||
|
||
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 à créé le projet [Evoacme](https://forge.evolix.org/projects/ansible-roles/repository/revisions/master/show/evoacme).
|
||
|
||
|