From d2bb97a810f88a1e4f114812f682cb030ffc7956 Mon Sep 17 00:00:00 2001 From: Thomas Willems Date: Tue, 5 Apr 2016 11:53:20 +0200 Subject: [PATCH] check .pem existence and concat to combined.pem with added eol Checks existince of cert, chain and privkey.pem. Concats these files to combined.pem and adds a linebreak after each file if there were none. This commit doesn't change the LE created .pem files, so no unlinking on the host should happen (see https://github.com/tomav/docker-mailserver/pull/111) --- start-mailserver.sh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/start-mailserver.sh b/start-mailserver.sh index 010e09b8..8fa74992 100644 --- a/start-mailserver.sh +++ b/start-mailserver.sh @@ -120,17 +120,18 @@ fi case $DMS_SSL in "letsencrypt" ) # letsencrypt folders and files mounted in /etc/letsencrypt - # add eol to all files before concatenation - sed -i -e '$a\' /etc/letsencrypt/live/$(hostname)/cert.pem - sed -i -e '$a\' /etc/letsencrypt/live/$(hostname)/chain.pem - sed -i -e '$a\' /etc/letsencrypt/live/$(hostname)/privkey.pem + if [ -e "/etc/letsencrypt/live/$(hostname)/cert.pem" ] \ + && [ -e "/etc/letsencrypt/live/$(hostname)/chain.pem" ] \ + && [ -e "/etc/letsencrypt/live/$(hostname)/privkey.pem" ]; then + echo "Adding $(hostname) SSL certificate" + # create combined.pem from (cert|chain|privkey).pem with eol after each .pem + sed -e '$a\' -s "/etc/letsencrypt/live/$(hostname)/{cert,chain,privkey}.pem" > "/etc/letsencrypt/live/$(hostname)/combined.pem" # Postfix configuration sed -i -r 's/smtpd_tls_cert_file=\/etc\/ssl\/certs\/ssl-cert-snakeoil.pem/smtpd_tls_cert_file=\/etc\/letsencrypt\/live\/'$(hostname)'\/fullchain.pem/g' /etc/postfix/main.cf sed -i -r 's/smtpd_tls_key_file=\/etc\/ssl\/private\/ssl-cert-snakeoil.key/smtpd_tls_key_file=\/etc\/letsencrypt\/live\/'$(hostname)'\/privkey.pem/g' /etc/postfix/main.cf # Courier configuration - cat "/etc/letsencrypt/live/$(hostname)/cert.pem" "/etc/letsencrypt/live/$(hostname)/chain.pem" "/etc/letsencrypt/live/$(hostname)/privkey.pem" > "/etc/letsencrypt/live/$(hostname)/combined.pem" sed -i -r 's/TLS_CERTFILE=\/etc\/courier\/imapd.pem/TLS_CERTFILE=\/etc\/letsencrypt\/live\/'$(hostname)'\/combined.pem/g' /etc/courier/imapd-ssl # POP3 courier configuration @@ -141,6 +142,7 @@ case $DMS_SSL in echo "SSL configured with letsencrypt certificates" + fi ;; "custom" )