Il y a 3 scripts à installer dans `/usr/local/sbin` :
* `vhosts-domains`
* `make-csr`
* `evoacme`
## Exécution
Sur un serveur web typique il y a 3 étapes.
### Déterminer la liste des domaines
`vhosts-domains example` permet d'extraire du VHost `example` la liste des domaines utilisés.
Il cherche les fichiers `/etc/apache2/sites-enabled/example.conf`, `/etc/nginx/sites-enabled/example.conf` et `/etc/nginx/sites-enabled/example` et utilise le premier trouvé.
~~~
# vhosts-domains example
www.example.com
example.com
~~~
### Créer un CSR
À partir de la liste des domaines du VHost, on crée un CSR :
~~~
# make-csr foo www.example.com example.com
~~~
Le CSR sera alors créé dans `/etc/ssl/requests/example.csr`
### Créer un certificat
~~~
# TEST=1 VERBOSE=1 evoacme example
~~~
Il va chercher un CSR à l'emplacement convenu : `/etc/ssl/requests/example.csr` et se connecter à Let's Encrypt pour créer un certificat.
La variable d'environnement `TEST=1` permet de générer un certificat non valide mais sans décompter le quota d'utilisation de Let's Encrypt. En effet les actions sont limitées et pendant les tests de mise en place il vaut mieux ne utiliser l'API de production. À enlever bien sûr pour générer le certificat final.
La variable `VERBOSE=1` permet d'afficher de nombreux messages utiles pour comprendre ce qui se passe, surtout en cas d'erreur.
Le certificat sera généré dans le dossier ` /etc/letsencrypt/example/<TIMESTAMP>/` et un fichier de configuration est généré (ou mis à jour) dans `/etc/nginx/ssl/example.conf` (pour Nginx) :
Il faut s'assurer que le fichier `/etc/nginx/ssl/example.conf` est bien inclus dans le fichier du VHost afin que le bon certificat soit utilisé.
~~~
server {
[…]
include /etc/nginx/ssl/example.conf;
[…]
}
~~~
## FAQ
@ -102,4 +228,4 @@ Attention, EvoACME s'appuie donc sur le nom du fichier de VirtualHost dans `/etc
### Nom des fichiers dans /etc/ssl/private
Attention, EvoACME va créer une clé privée dans /etc/ssl/private en fonction du nom du VirtualHost : il faut s'assurer que cela ne va pas écraser une clé existante.
Attention, EvoACME va créer une clé privée dans /etc/ssl/private en fonction du nom du VirtualHost : il faut s'assurer que cela ne va pas écraser une clé existante.