Dovecot 错误:ssl 已启用,但 ssl_cert 未设置

Dovecot 错误:ssl 已启用,但 ssl_cert 未设置

几天来我一直在尝试设置 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 创建了一个自签名证书,并且没有收到任何有关未配置 SSL 的错误消息。事实上,我能够从另一台客户端计算机登录到 pops,并且它给出了有关证书不受信任的常见警告。但是,我确实注意到证书引用了错误的主机名,这是在我重建 VPS 并愚蠢地安装和配置 Dovecot 并设置了错误的主机名之后导致的。

好吧,我清除了所有文件并重新安装。我再次删除了所有密钥,并用 OpenSSL 重新生成了几次,但现在由于这个错误,我甚至无法启动 Dovecot。我被困住了,不知道该如何处理。Postfix 中引用 Dovecot 的某些东西是否可能导致了这种情况?

有些网站建议检查语法,例如ssl_cert = </etcvs ssl_cert = /etc,但这并没有什么效果。我也很乐意暂时禁用 ssl 来绕过错误,但这也失败了。

刚才我尝试创建指向预建键的符号链接/etc/dovecot/etc/dovecot.pem但收到了相同的消息。

答案1

但是旧帖子:错误来自于这样一个事实,即主配置文件 dovecot.conf 需要在末尾有一行:“!include conf.d/*.conf”。

否则它将不会加载“conf.d/”中的配置文件

我认为这就是为什么你没有从更改“conf.d/”中的配置文件中的设置中获得任何差异的原因

另外,如果 10-ssl.conf 或 dovecot.conf 中没有设置 SSL,为什么会显示 SSL 已启用?在哪里启用了 SSL?

这是因为默认配置是 ssl = yes。没有包含 10-ssl.conf 文件(您可以在其中停用 ssl 或设置证书文件)会导致该结果。

答案2

我的 Dovecot 配置在dovecot/conf.d/10-ssl.conf两个不同的服务器上运行,其配置如下:

ssl = yes
ssl_cert = </path/to/cert.file
ssl_key = </path/to/key.file

我使用证书颁发机构,因此我还有:

ssl_ca = </path/to/ca-bundle.pem

我设置服务器已经有一段时间了,但我确实记得 Dovecot 存在问题,我相信它们与 Postfix 是分开的。

我不确定意外的值错误。当您取消注释时,您是否更改ssl = nossl = yes?我还知道 OpenSSL 对文件权限有点挑剔。我的密钥文件归 root:root 所有,并设置了 400 个权限。

答案3

检查 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 小时

更新:

doveconf -a | grep ssl

相关内容