diff --git a/HowtoLetsEncrypt.md b/HowtoLetsEncrypt.md
index ba26ce72..ee1e63b6 100644
--- a/HowtoLetsEncrypt.md
+++ b/HowtoLetsEncrypt.md
@@ -6,45 +6,62 @@ title: Howto Let's Encrypt
* Documentation :
* Rôle Ansible :
-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é.
+[Let's Encrypt](https://letsencrypt.org/) est une autorité de certification fournissant des certificats [SSL](HowtoSSL) valables 90 jours gratuitement et automatiquement.
+L'obtention d'un certificat signé s'effectue via le protocole [ACME (Automated Certificate Management Environment)](https://en.wikipedia.org/wiki/Automated_Certificate_Management_Environment),
+ce qui nécessite d'avoir temporairement un serveur HTTP sur le port TCP/80 de l'adresse IP correspondant au _Common Name_ du certificat à signer.
+Le certificat intermédiaire de Let's Encrypt est également signés par l'autorité de certification _IdenTrust_ préinstallée dans la plupart des navigateurs.
-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)
+## Installation
-[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.
+Un client ACME est nécessaire pour communiquer avec les serveurs de Let's Encrypt et obtenir un certificat.
-Pour l'installer sous Jessie, il faut avoir activé les backports, puis :
+Nous utilisons le client officiel [Certbot](https://certbot.eff.org/) disponible via les [backports](HowtoDebian/Backports).
+
+On ajoute les lignes suivantes à `/etc/apt/preferences.d/backports` :
~~~
-apt install certbot -t jessie-backports
+Package: certbot python-certbot python-acme python-cryptography python-openssl python-setuptools python-ndg-httpsclient python-pyasn1
+Pin: release a=jessie-backports
+Pin-Priority: 999
+~~~
+
+puis on installe certbot et ses dépendances :
+
+~~~
+# apt install certbot
+
+$ certbot --version
+certbot 0.9.3
~~~
### 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, il faut supprimer la tâche cron par défaut du paquet certbot qui est lance la commande certbot en root :
+On évite de faire tourner certbot avec l'utilisateur _root_ (notamment pour ne pas lui donner accès aux clés privées).
+Nous allons créer un utilisateur dédié _acme_ :
~~~
-rm /etc/cron.d/certbot
+# adduser --home /var/lib/letsencrypt --quiet --system --no-create-home --group acme
+# install -m 755 -o acme -g acme -d /etc/letsencrypt /var/lib/letsencrypt
+# install -m 750 -o acme -g acme -d /var/log/letsencrypt
~~~
-Ensuite on crée un utilisateur dédié à certbot (ici "acme") et on corrige les droits en conséquence :
+et désactiver la tâche cron `/etc/cron.d/certbot` :
~~~
-useradd acme -d /etc/letsencrypt
-install -m 755 -o acme -g acme -d /etc/letsencrypt /var/log/letsencrypt /var/lib/letsencrypt
+# mv /etc/cron.d/certbot /etc/cron.d/certbot.disabled
~~~
### 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
-Créer le fichier /etc/apache2/conf-available/letsencrypt.conf avec :
+Configuration `/etc/apache2/conf-available/letsencrypt.conf` :
-~~~
-SetEnvIf Request_URI "/.well-known/acme-challenge/*" no-jk
+~~~{.apache}
Alias /.well-known/acme-challenge /var/lib/letsencrypt/.well-known/acme-challenge
Options -Indexes
@@ -53,17 +70,9 @@ Alias /.well-known/acme-challenge /var/lib/letsencrypt/.well-known/acme-challeng
~~~
-Puis activer ce fichier :
-
-~~~
-ln -s /etc/apache2/conf-available/letsencrypt.conf /etc/apache2/conf-enabled/letsencrypt.conf
-apache2ctl -t
-service apache2 reload
-~~~
-
#### Nginx
-Créer le fichier /etc/nginx/letsencrypt.conf :
+Configuration `/etc/nginx/letsencrypt.conf` :
~~~
location /.well-known/acme-challenge {
@@ -73,25 +82,54 @@ location /.well-known/acme-challenge {
}
~~~
-Il faudra ensuite inclure ce fichier dans chaque vhost utilisant Let's Encrypt.
-### Génération du certificat
+## 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)) :
+Générér une clé privée (www.example.com.key) et sa demande de certificat associé (www.example.com.csr) (voir [HowtoSSL]()) :
~~~
-openssl req -newkey rsa:2048 -sha256 -nodes -keyout /etc/ssl/private/ma-cle.ssl -out mon-csr.csr
+# mkdir -p /etc/letsencrypt/www.example.com/
+# openssl req -newkey rsa:2048 -sha256 -nodes -keyout /etc/ssl/private/www.example.com.key -out /etc/letsencrypt/www.example.com/www.example.com.csr
+# chown -R acme:acme /etc/letsencrypt/www.example.com/
~~~
-Faire la demande de certificat (avec l'utilisateur acme, le csr doit être accessible en lecture à cet utilisateur) :
+Faire la demande de certificat avec l'utilisateur _acme_ :
~~~
-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
+$ certbot certonly --webroot --csr /etc/letsencrypt/www.example.com/www.example.com.csr --webroot-path /var/lib/letsencrypt -n --agree-tos --register-unsafely-without-email
~~~
-Votre certificat est maintenant présent dans /etc/letsencrypt/mon-cert.crt !
+Votre certificat est maintenant présent dans `/etc/letsencrypt/live/www.example.com/`.
+
+> *Note* : l'utilisateur _acme_ n'a pas accès aux clés privées :
+
+~~~
+$ cat /etc/ssl/private/www.example.com.key
+cat: /etc/ssl/private/www.example.com.key: Permission non accordée
+~~~
+
+## Renouvellement du certificat
+
+Les certificats Let's Encrypt sont valables 90 jours. Avant la date d'expiration, il faudra relancer avec l'utilisateur _acme_ :
+
+~~~
+$ certbot certonly --webroot --csr /etc/letsencrypt/www.example.com/www.example.com.csr --webroot-path /var/lib/letsencrypt -n --agree-tos --register-unsafely-without-email
+~~~
+
+Le dernier certificat sera dans `/etc/letsencrypt/live/www.example.com/` tandis que les anciens certificats seront dans `/etc/letsencrypt/archive`.
+
## 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/revisions/unstable/show/evoacme).
+Pour automatiser l'installation de _Certbot_ et la génération de certificat, nous utilisons des scripts : [Evoacme](https://forge.evolix.org/projects/ansible-roles/repository/revisions/unstable/show/evoacme).
+
+## FAQ
+
+### Certificat Wildcard ou EV
+
+Let's Encrypt ne permet pas de générer un certificat Wildcard ou 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.