[ACME] Do check for restart of Postfix and Dovecot service more thoroughly
parent
ba0b6963c7
commit
c8ce288178
|
@ -50,6 +50,18 @@ until ping dockerapi -c1 > /dev/null; do
|
||||||
done
|
done
|
||||||
log_f "OK" no_date
|
log_f "OK" no_date
|
||||||
|
|
||||||
|
log_f "Waiting for Postfix..." no_nl
|
||||||
|
until ping postfix -c1 > /dev/null; do
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
log_f "OK" no_date
|
||||||
|
|
||||||
|
log_f "Waiting for Dovecot..." no_nl
|
||||||
|
until ping dovecot -c1 > /dev/null; do
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
log_f "OK" no_date
|
||||||
|
|
||||||
ACME_BASE=/var/lib/acme
|
ACME_BASE=/var/lib/acme
|
||||||
SSL_EXAMPLE=/var/lib/ssl-example
|
SSL_EXAMPLE=/var/lib/ssl-example
|
||||||
|
|
||||||
|
@ -124,7 +136,10 @@ log_f "OK" no_date
|
||||||
log_f "Initializing, please wait... "
|
log_f "Initializing, please wait... "
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
|
POSTFIX_CERT_SERIAL="$(echo | openssl s_client -connect postfix:25 -starttls smtp 2>/dev/null | openssl x509 -inform pem -noout -serial | cut -d "=" -f 2)"
|
||||||
|
DOVECOT_CERT_SERIAL="$(echo | openssl s_client -connect dovecot:143 -starttls imap 2>/dev/null | openssl x509 -inform pem -noout -serial | cut -d "=" -f 2)"
|
||||||
|
POSTFIX_CERT_SERIAL_NEW="$(echo | openssl s_client -connect postfix:25 -starttls smtp 2>/dev/null | openssl x509 -inform pem -noout -serial | cut -d "=" -f 2)"
|
||||||
|
DOVECOT_CERT_SERIAL_NEW="$(echo | openssl s_client -connect dovecot:143 -starttls imap 2>/dev/null | openssl x509 -inform pem -noout -serial | cut -d "=" -f 2)"
|
||||||
# Re-using previous acme-mailcow account and domain keys
|
# Re-using previous acme-mailcow account and domain keys
|
||||||
if [[ ! -f ${ACME_BASE}/acme/key.pem ]]; then
|
if [[ ! -f ${ACME_BASE}/acme/key.pem ]]; then
|
||||||
log_f "Generating missing domain private rsa key..."
|
log_f "Generating missing domain private rsa key..."
|
||||||
|
@ -351,7 +366,27 @@ while true; do
|
||||||
# reload on new or changed certificates
|
# reload on new or changed certificates
|
||||||
if [[ "${CERT_CHANGED}" == "1" ]]; then
|
if [[ "${CERT_CHANGED}" == "1" ]]; then
|
||||||
rm -f "${ACME_BASE}/force_renew" 2> /dev/null
|
rm -f "${ACME_BASE}/force_renew" 2> /dev/null
|
||||||
|
RELOAD_LOOP_C=1
|
||||||
|
while [[ "${POSTFIX_CERT_SERIAL}" == "${POSTFIX_CERT_SERIAL_NEW}" ]] || [[ "${DOVECOT_CERT_SERIAL}" == "${DOVECOT_CERT_SERIAL_NEW}" ]] || [[ ${#POSTFIX_CERT_SERIAL_NEW} -ne 36 ]] || [[ ${#DOVECOT_CERT_SERIAL_NEW} -ne 36 ]]; do
|
||||||
|
log_f "Reloading or restarting services... (${RELOAD_LOOP_C})"
|
||||||
|
RELOAD_LOOP_C=$((RELOAD_LOOP_C + 1))
|
||||||
CERT_AMOUNT_CHANGED=${CERT_AMOUNT_CHANGED} /srv/reload-configurations.sh
|
CERT_AMOUNT_CHANGED=${CERT_AMOUNT_CHANGED} /srv/reload-configurations.sh
|
||||||
|
log_f "Waiting for containers to settle..."
|
||||||
|
sleep 10
|
||||||
|
until nc -z dovecot 143; do
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
until nc -z postfix 25; do
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
POSTFIX_CERT_SERIAL_NEW="$(echo | openssl s_client -connect postfix:25 -starttls smtp 2>/dev/null | openssl x509 -inform pem -noout -serial | cut -d "=" -f 2)"
|
||||||
|
DOVECOT_CERT_SERIAL_NEW="$(echo | openssl s_client -connect dovecot:143 -starttls imap 2>/dev/null | openssl x509 -inform pem -noout -serial | cut -d "=" -f 2)"
|
||||||
|
if [[ ${RELOAD_LOOP_C} -gt 3 ]]; then
|
||||||
|
log_f "Some services do return old end dates, something went wrong!"
|
||||||
|
${REDIS_CMDLINE} SET ACME_FAIL_TIME "$(date +%s)"
|
||||||
|
break;
|
||||||
|
fi
|
||||||
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case "$CERT_ERRORS" in
|
case "$CERT_ERRORS" in
|
||||||
|
|
|
@ -343,7 +343,7 @@ services:
|
||||||
acme-mailcow:
|
acme-mailcow:
|
||||||
depends_on:
|
depends_on:
|
||||||
- nginx-mailcow
|
- nginx-mailcow
|
||||||
image: mailcow/acme:1.74
|
image: mailcow/acme:1.75
|
||||||
dns:
|
dns:
|
||||||
- ${IPV4_NETWORK:-172.22.1}.254
|
- ${IPV4_NETWORK:-172.22.1}.254
|
||||||
environment:
|
environment:
|
||||||
|
|
Loading…
Reference in New Issue