This commit is contained in:
svg 2024-08-08 23:52:13 +02:00
parent 9273326709
commit 3e619a341f
1 changed files with 13 additions and 11 deletions

View File

@ -133,32 +133,34 @@ function _setup_ssl() {
# add empty dovecot & postfix config # add empty dovecot & postfix config
echo -n "" > /etc/dovecot/conf.d/10-sni.conf echo -n "" > /etc/dovecot/conf.d/10-sni.conf
echo -n "" > /etc/postfix/sni.map echo -n "" > /etc/postfix/sni.map
# add tls_server_sni_maps if not exist # add tls_server_sni_maps if not exist
local SNI_MAPS="tls_server_sni_maps = hash:/etc/postfix/sni.map" local SNI_MAPS="tls_server_sni_maps = hash:/etc/postfix/sni.map"
grep -qxF -- "${SNI_MAPS}" "/etc/postfix/main.cf" || echo ${SNI_MAPS} >> /etc/postfix/main.cf grep -qxF -- "${SNI_MAPS}" "/etc/postfix/main.cf" || echo "${SNI_MAPS}" >> /etc/postfix/main.cf
for SNI_DOMAIN in ${SSL_SNI_DOMAINS//,/ } for SNI_DOMAIN in ${SSL_SNI_DOMAINS//,/ }
do do
if _extract_certs_from_acme "${SNI_DOMAIN}"; then if _extract_certs_from_acme "${SNI_DOMAIN}"; then
local PRIVATE_KEY="/etc/letsencrypt/live/${SNI_DOMAIN}/key.pem" local PRIVATE_KEY="/etc/letsencrypt/live/${SNI_DOMAIN}/key.pem"
local CERT_CHAIN="/etc/letsencrypt/live/${SNI_DOMAIN}/fullchain.pem" local CERT_CHAIN="/etc/letsencrypt/live/${SNI_DOMAIN}/fullchain.pem"
# add domain certificate to postfix # add domain certificate to postfix
echo "${SNI_DOMAIN} ${PRIVATE_KEY} ${CERT_CHAIN}" >> /etc/postfix/sni.map echo "${SNI_DOMAIN} ${PRIVATE_KEY} ${CERT_CHAIN}" >> /etc/postfix/sni.map
# add domain certificate to dovecot # add domain certificate to dovecot
echo "local_name ${SNI_DOMAIN} {" >> /etc/dovecot/conf.d/10-sni.conf {
echo " ssl_cert = <${CERT_CHAIN}" >> /etc/dovecot/conf.d/10-sni.conf echo "local_name ${SNI_DOMAIN} {"
echo " ssl_key = <${PRIVATE_KEY}" >> /etc/dovecot/conf.d/10-sni.conf echo " ssl_cert = <${CERT_CHAIN}"
echo "}" >> /etc/dovecot/conf.d/10-sni.conf echo " ssl_key = <${PRIVATE_KEY}"
echo "}"
} >> /etc/dovecot/conf.d/10-sni.conf
_log 'trace' "SNI: extracted domain: ${SNI_DOMAIN}" _log 'trace' "SNI: extracted domain: ${SNI_DOMAIN}"
else else
_log 'warn' "SNI: letsencrypt (acme.json) failed to extract SNI domain: ${SNI_DOMAIN}" _log 'warn' "SNI: letsencrypt (acme.json) failed to extract SNI domain: ${SNI_DOMAIN}"
fi fi
done done
# create postfix SNI table # create postfix SNI table
postmap -F hash:/etc/postfix/sni.map postmap -F hash:/etc/postfix/sni.map
_log 'trace' "SNI: creating postfix db (sni.map.db)" _log 'trace' "SNI: creating postfix db (sni.map.db)"