From a955689f5e13c47878c066a101e9ff70eb02a933 Mon Sep 17 00:00:00 2001 From: gcolpart Date: Wed, 22 Mar 2017 00:33:53 +0100 Subject: [PATCH] premier jet de doc pour evoacme --- HowtoEvoACME.md | 105 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 HowtoEvoACME.md diff --git a/HowtoEvoACME.md b/HowtoEvoACME.md new file mode 100644 index 00000000..d503d153 --- /dev/null +++ b/HowtoEvoACME.md @@ -0,0 +1,105 @@ +# Howto EvoACME + +## Installation + +~~~ +# cat /etc/apt/sources.list.d/backports.list +deb http://mirror.evolix.org/debian jessie-backports main + +# tail -4 /etc/apt/preferences.d/backports +Package: certbot python-certbot python-acme python-cryptography python-openssl python-setuptools python-ndg-httpsclient python-pyasn1 python-pkg-resources +Pin: release a=jessie-backports +Pin-Priority: 999 + +# apt install 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 +# install -m 750 -o acme -g acme -d /var/log/evoacme +# mv /etc/cron.d/certbot /etc/cron.d/certbot.disabled +# echo "acme: root" >> /etc/aliases && newaliases + +# cat /etc/apache2/conf-available/letsencrypt.conf +Alias /.well-known/acme-challenge /var/lib/letsencrypt/.well-known/acme-challenge + + Options -Indexes + Allow from all + Require all granted + + +# a2enconf letsencrypt +# systemctl reload apache2 + +# cat /etc/letsencrypt/openssl.cnf +[req] +default_bits = 2048 +encrypt_key = yes +distinguished_name = req_dn +prompt = no +[req_dn] +C = FR +ST = France +L = Marseille +O = Foo +OU = Security +emailAddress = security@example.com + +# cat /etc/default/evoacme +SSL_KEY_DIR=/etc/ssl/private +ACME_DIR=/var/lib/letsencrypt +CSR_DIR=/etc/ssl/requests +CRT_DIR=/etc/letsencrypt +LOG_DIR=/var/log/evoacme +SSL_MINDAY=15 + +# cat /etc/cron.daily/certbot +#!/bin/bash + +ls /etc/letsencrypt/*.crt 2>/dev/null |sed 's/.crt//'|while read vhost; +do + evoacme $(basename $vhost)>/dev/null +done +~~~ + +Installer /usr/local/bin/make-csr et /usr/local/bin/evoacme + +Générer un certificat pour un VirtualHost, par exemple `/etc/apache2/sites-enabled/foo.conf` : + +~~~ +# make-csr foo +# evoacme foo +~~~ + +puis configurer le VirtualHost avec : + +~~~ +SSLCertificateKeyFile /etc/ssl/private/foo.key +SSLCertificateFile /etc/letsencrypt/foo-fullchain.pem +~~~ + + +## FAQ + +### Rewrite + +Si vous avez une re-écriture http vers https, cela ne pose de problème (Let's Encrypt n'exige pas d'avoir un certificat valide pour sa vérification) MAIS il faut s'assurer de conserver l'URL. + +Par exemple la ré-écriture suivante ne convient **pas** : + +~~~ +RewriteRule ^/(.*) https://example.com/ [L,R] +~~~ + +il faut avoir : + +~~~ +RewriteRule ^/(.*) https://example.com/$1 [L,R] +~~~ + +### Renommage des VirtualHosts + +Attention, EvoACME s'appuie donc sur le nom du fichier de VirtualHost dans `/etc/apache2/sites-enabled/` ...attention en cas de renommage il faudra renommer également le .csr ! Notamment pour `000-default` si on le renomme en `zzz-default` par exemple. + +### 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. \ No newline at end of file