105 lines
2.9 KiB
Markdown
105 lines
2.9 KiB
Markdown
# 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. |