几天来我一直在尝试设置 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 = </etc
vs 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 = no
为ssl = 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