18
0
Fork 0

premier jet de doc pour evoacme

This commit is contained in:
gcolpart 2017-03-22 00:33:53 +01:00
parent 9ed44fdb29
commit a955689f5e
1 changed files with 105 additions and 0 deletions

105
HowtoEvoACME.md Normal file
View File

@ -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
<Directory "/var/lib/letsencrypt/.well-known/acme-challenge">
Options -Indexes
Allow from all
Require all granted
</Directory>
# 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.