# 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.