ansible-roles/evoacme/files/evoacme.sh
Victor LABORIE d3310007c3 evoacme :
- Don't generate dhparams (not evoacme role)
- Generate ssl conf file for vhost
2017-02-03 16:24:39 +01:00

60 lines
2 KiB
Bash
Executable file

#!/bin/bash
[ -f /etc/default/evoacme ] && source /etc/default/evoacme
[ -z "${SSL_KEY_DIR}" ] && SSL_KEY_DIR='/etc/ssl/private'
[ -z "${CSR_DIR}" ] && CSR_DIR='/etc/ssl/requests'
[ -z "${SELF_SIGNED_DIR}" ] && SELF_SIGNED_DIR='/etc/ssl/self-signed'
vhost=$1
SSL_EMAIL=$(grep emailAddress /etc/letsencrypt/openssl.cnf|cut -d'=' -f2|xargs)
if [ -n "$SSL_EMAIL" ]; then
emailopt="--email $SSL_EMAIL"
else
emailopt="--register-unsafely-without-email"
fi
if [ -f $CRT_DIR/${vhost}.crt ]; then
renew=true
crt_end_date=`openssl x509 -noout -enddate -in $CRT_DIR/${vhost}.crt|sed -e "s/.*=//"`
date_crt=`date -ud "$crt_end_date" +"%s"`
date_today=`date +'%s'`
date_diff=$(( ( $date_crt - $date_today ) / (60*60*24) ))
if [ $date_diff -ge $SSL_MINDAY ]; then
exit 0
fi
fi
rm -f $CRT_DIR/${vhost}.crt $CRT_DIR/${vhost}-fullchain.pem $CRT_DIR/${vhost}-chain.pem
sudo -u acme certbot certonly --quiet --webroot --csr $CSR_DIR/${vhost}.csr --webroot-path $ACME_DIR -n --agree-tos --cert-path=$CRT_DIR/${vhost}.crt --fullchain-path=$CRT_DIR/${vhost}-fullchain.pem --chain-path=$CRT_DIR/${vhost}-chain.pem $emailopt --logs-dir $LOG_DIR 2> >(grep -v certbot.crypto_util)
if [ $? != 0 ]; then
if [ -d /etc/apache2 ]; then
sed -i "s~^SSLCertificateFile.*$~SSLCertificateFile $SELF_SIGNED_DIR/${vhost}.pem~" /etc/apache2/ssl/${vhost}.conf
fi
if [ -d /etc/nginx ]; then
sed -i "s~^ssl_certificate[^_]*$~ssl_certificate $SELF_SIGNED_DIR/${vhost}.pem;~" /etc/nginx/ssl/${vhost}.conf
fi
exit 1
fi
which apache2ctl>/dev/null
if [ $? == 0 ]; then
sed -i "s~^SSLCertificateFile.*$~SSLCertificateFile $CRT_DIR/${vhost}-fullchain.pem~" /etc/apache2/ssl/${vhost}.conf
apache2ctl -t 2>/dev/null
if [ $? == 0 ]; then
service apache2 reload
fi
fi
which nginx>/dev/null
if [ $? == 0 ]; then
sed -i "s~^ssl_certificate[^_]*$~ssl_certificate $CRT_DIR/${vhost}-fullchain.pem;~" /etc/nginx/ssl/${vhost}.conf
nginx -t 2>/dev/null
if [ $? == 0 ]; then
service nginx reload
fi
fi
exit 0