O Certbot renova os certificados no mesmo lugar, mas não reinicia o Dovecot. Sem um reload, você continua servindo o certificado antigo até o Dovecot reiniciar.
Adicione um hook de deploy em /etc/letsencrypt/renewal-hooks/deploy/reload-dovecot.sh:
#!/bin/bash
systemctl reload dovecot
systemctl reload postfix
chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-dovecot.sh
Teste o certificado de fora:
openssl s_client -connect mail.example.com:993 -servername mail.example.com -showcerts < /dev/null | grep "Verify return code"
O esperado é Verify return code: 0 (ok).
SNI para vários hostnames: adicione blocos por nome:
local_name imap.alt.example {
ssl_cert = </etc/letsencrypt/live/imap.alt.example/fullchain.pem
ssl_key = </etc/letsencrypt/live/imap.alt.example/privkey.pem
}
Entre para acompanhar o que você já leu.