On August 16, 2021 3:03:22 AM GMT+02:00, sil...@datavenia.nl wrote:
>Hello,
>
> 
>
>I’ve tried implementing TLS SNI for my Postfix/Dovecot setup. I have it 
>working in Postfix, but this example for Dovecot: 
>https://doc.dovecot.org/configuration_manual/dovecot_ssl_configuration/#with-client-tls-sni-server-name-indication-support
> doesn’t seem to work for me.
>
> 
>
>I’m using LetsEncrypt certificates. They work without a problem with the 
>regular ssl_cert and ssl_key settings like this:
>
> 
>
>ssl_cert = 
></docker/rancher-active-proxy/letsencrypt/live/datavenia.nl/fullchain.pem
>
>ssl_key = 
></docker/rancher-active-proxy/letsencrypt/live/datavenia.nl/privkey.pem
>
> 
>
>… but as soon as I put them in local_name blocks like this:
>
> 
>
>local_name datavenia.nl {
>
>  ssl_cert = 
> </docker/rancher-active-proxy/letsencrypt/live/datavenia.nl/fullchain.pem
>
>  ssl_key = 
> </docker/rancher-active-proxy/letsencrypt/live/datavenia.nl/privkey.pem
>
>}
>
> 
>
>local_name verovia.nl {
>
>  ssl_cert = 
> </docker/rancher-active-proxy/letsencrypt/live/verovia.nl/fullchain.pem
>
>  ssl_key = 
> </docker/rancher-active-proxy/letsencrypt/live/verovia.nl/privkey.pem
>
>}
>
> 
>
>and restart dovecot I get the following error:
>
> 
>
>dovecot: imap-login: Error: Failed to initialize SSL server context: Can't 
>load SSL certificate (ssl_cert setting): The certificate is empty: user=<>, 
>rip=213.127.63.224, lip=142.93.135.7, session=<wKjTIaLJtSXVfz/g>
>
You still need a default ssl_cert outside the local ... block.

This is noted in the section about different certs for different IPs just 
before the section about SNI


-> Note
-> You will still need a top-level default ssl_key and ssl_cert as well, or you 
will receive errors.

That default cert ia used as fallback for clients that don't do SNI.

>
>I have verified that the certificate paths are correct, the files have 
>content. I’ve already checked permissions (chmodded 777 to debug), as well as 
>the that these are actually symlinks (updated the config to point to the real 
>files) but nothing so far seems to change anything. I have also recreated my 
>dh.pem (4096).
>
> 
>
>I’m hoping anyone has any idea where I might be going wrong. 
>
> 
>
>Kind regards,
>
>Silvan
>
> 
>
>Output of dovecot -n:
>
> 
>
># 2.3.13 (89f716dc2): /etc/dovecot/dovecot.conf
>
># Pigeonhole version 0.5.13 (cdd19fe3)
>
># OS: Linux 5.11.0-25-generic x86_64 Ubuntu 21.04 ext4
>
># Hostname: azrael00
>
>auth_mechanisms = plain login
>
>mail_location = maildir:/var/mail/vhosts/%d/%n
>
>mail_privileged_group = mail
>
>namespace inbox {
>
>  inbox = yes
>
>  location =
>
>  mailbox Drafts {
>
>    special_use = \Drafts
>
>  }
>
>  mailbox Junk {
>
>    special_use = \Junk
>
>  }
>
>  mailbox Sent {
>
>    special_use = \Sent
>
>  }
>
>  mailbox "Sent Messages" {
>
>    special_use = \Sent
>
>  }
>
>  mailbox Trash {
>
>    special_use = \Trash
>
>  }
>
>  prefix =
>
>}
>
>passdb {
>
>  args = /etc/dovecot/dovecot-sql.conf.ext
>
>  driver = sql
>
>}
>
>postmaster_address = postmas...@datavenia.nl <mailto:postmas...@datavenia.nl> 
>
>protocols = imap lmtp
>
>service auth-worker {
>
>  user = vmail
>
>}
>
>service auth {
>
>  unix_listener /var/spool/postfix/private/auth {
>
>    group = postfix
>
>    mode = 0666
>
>    user = postfix
>
>  }
>
>  unix_listener auth-userdb {
>
>    mode = 0666
>
>    user = vmail
>
>  }
>
>  user = dovecot
>
>}
>
>service imap-login {
>
>  inet_listener imap {
>
>    port = 0
>
>  }
>
>}
>
>service lmtp {
>
>  unix_listener /var/spool/postfix/private/dovecot-lmtp {
>
>    group = postfix
>
>    mode = 0600
>
>    user = postfix
>
>  }
>
>}
>
>ssl = required
>
>ssl_dh = # hidden, use -P to show it
>
>userdb {
>
>  args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
>
>  driver = static
>
>}
>
>local_name datavenia.nl {
>
>  ssl_cert = 
> </docker/rancher-active-proxy/letsencrypt/live/datavenia.nl/fullchain.pem
>
>  ssl_key = # hidden, use -P to show it
>
>}
>
>local_name verovia.nl {
>
>  ssl_cert = 
> </docker/rancher-active-proxy/letsencrypt/live/verovia.nl/fullchain.pem
>
>  ssl_key = # hidden, use -P to show it
>
>}
>

-- 
Christian Kivalo

Reply via email to