On 1 Nov 2017, at 13.51, Reuben Farrelly <[email protected]> wrote:
>
>
> That's the thing. Those extra ssl_dh lines aren't actually specified in my
> conf files, they have been inherited from somewhere - so I can't change them
> to be of any particular form because they aren't defined as being that way in
> my configuration files.
>
> There is only one place where ssl_dh is defined and that's in the global
> 10-ssl.conf file. See here:
>
> lightning dovecot # grep ssl_dh *
> grep: conf.d: Is a directory
> lightning dovecot # grep ssl_dh */*
> conf.d/10-ssl.conf:# gives on startup when ssl_dh is unset.
> conf.d/10-ssl.conf:ssl_dh=</etc/dovecot/dh.pem
> lightning dovecot #
>
> The rest of them must be being inherited from that statement above.
>
> But back to the original question, if I *remove* the ssl-parameters.dat file
> from /var/lib/dovecot/ then without any other configuration changes the error
> goes away on reload and from doveconf output. Not only that, but if the
> ssl-parameters.dat file is removed then those ssl_dh lines per-protocol in
> doveconf -n also disappear too.
>
> To me that indicates that the mere presence of the ssl-parameters.dat file is
> doing something odd with the way the ssl_dh configuration statements are
> being handled. Something buggy with backwards compatibility perhaps?
>
> [Also tested with latest 2.3 -git as of today - same result]
Looks like this is pretty easily reproducible:
a) ok: printf "ssl_dh = </usr/local/etc/dovecot/dh.pem\n" > foo; doveconf -n -c
foo
b) not ok: printf "ssl_dh = </usr/local/etc/dovecot/dh.pem\nprotocol imap
{\n}\n" > foo; doveconf -n -c foo
doveconf: Warning: please set ssl_dh=</usr/local/etc/dovecot/dh.pem