我一直试图让Postfix和Dovecot成立好几天,我想我已经解决了所有的问题,除了刚刚出现的问题之外。 当我尝试重新启动Dovecot时,出现以下错误消息:
doveconf: Fatal: Error in configuration file /etc/dovecot/dovecot.conf: ssl enabled, but ssl_cert not set [....] Restarting IMAP/POP3 mail server: dovecotdoveconf: Fatal: Error in configuration file /etc/dovecot/dovecot.conf: ssl enabled, but ssl_cert not set
当我检查dovecot.conf时,没有什么关于ssl的,所以我认为错误是引用了10-ssl.conf的设置。 我注意到这些设置被注释掉了:
# ssl = no # ssl_cert = </etc/ssl/dovecot.pem # ssl_key = </etc/ssl/private/dovecot.pem
我知道这些在之前没有注释过,但是如果我现在取消注释,我会在启动时发现10-ssl.conf中出现意外值ssl的错误。 从Dovecot wiki这个值必须设置,即使它被其他地方的特定协议覆盖。
如果我把ssl值注释掉了,我会得到关于ssl被启用但是没有设置的第一个错误信息。
早些时候,我使用OpenSSL创build了一个自签名证书,并没有收到任何有关未configurationssl的错误消息。 事实上,我能够login到另一台客户端机器的popup窗口,并给出了关于证书不受信任的通常警告。 但我注意到,证书引用了一个不正确的主机名,这是我重build我的VPS之前造成的,并愚蠢地安装并configuration了不正确的主机名的Dovecot。
那么我清除所有文件,并重新安装。 我再次删除了所有密钥,并用OpenSSL重新生成了几次,但是现在我甚至无法启动Dovecot,因为这个错误。 我卡住了,想知道我应该如何处理这个问题。 是否有可能在Postfix引用Dovecot的东西造成这种情况?
有些网站说检查你的语法,如ssl_cert = </etc vs ssl_cert = /etc但这没有什么区别。 我也很乐意暂时禁用ssl来解决这个错误,但是也是失败的。
刚才我试图创build一个到/etc/dovecot和/etc/dovecot.pem预build键的符号链接,但是我得到了相同的信息。
旧的post,但是:错误来自这样一个事实,即主configuration文件dovecot.conf需要在最后有一行:“!include conf.d / *。conf”。
否则,它不会加载你在“conf.d /”里面的configuration文件
我认为这就是为什么你不改变“conf.d /”中的configuration文件中的设置的任何区别
另外,为什么说如果SSL没有在10-ssl.conf或dovecot.conf中设置,那么SSL是启用的呢? 它在哪里启用?
这是因为默认configuration是ssl = yes。 没有包含10-ssl.conf文件,您可以在其中取消激活ssl或设置cert文件为您提供结果。
我在dovecot/conf.d/10-ssl.confconfiguration了两个不同服务器的Dovecotconfiguration:
ssl = yes ssl_cert = </path/to/cert.file ssl_key = </path/to/key.file
我使用证书颁发机构,所以我也有:
ssl_ca = </path/to/ca-bundle.pem
自从我设置了服务器以来,已经有一段时间了,但是我记得Dovecot有问题,我相信它们和Postfix是分开的。
我不确定意外的数值错误。 当你取消注释时,你是否改变ssl = no为ssl = yes ? 我也知道OpenSSL对文件权限有点挑剔。 我的密钥文件由root:root拥有,并拥有400个权限集。
检查20-imap.conf( http://wiki2.dovecot.org/SSL/DovecotConfiguration ):
protocol imap { ssl_cert = </etc/ssl/dovecot.pem ssl_key = </etc/ssl/private/dovecot.pem }
和10-ssl.conf: ssl_parameters_regenerate = 0 << – 默认168小时
UPD:
doveconf -a | grep ssl