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

Ste*_*eve 7 dovecot openssl ssl-certificate

我已经尝试设置 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
Run Code Online (Sandbox Code Playgroud)

当我检查 dovecot.conf 时,没有任何关于 ssl 的内容,所以我假设错误是引用了10-ssl.conf. 我注意到设置被注释掉了:

# ssl = no
# ssl_cert = </etc/ssl/dovecot.pem
# ssl_key = </etc/ssl/private/dovecot.pem
Run Code Online (Sandbox Code Playgroud)

我知道这些之前已取消注释,但如果我现在取消注释,我会在启动时收到一个不同的错误,关于 10-ssl.conf 中的意外值 ssl。从 Dovecot wiki 中,即使该值被其他地方的特定协议覆盖,也必须设置该值。

如果我将 ssl 值注释掉,我会收到关于 ssl 已启用但未设置的第一条错误消息。

早些时候,我使用 OpenSSL 创建了一个自签名证书,但没有收到任何有关未配置 ssl 的错误消息。事实上,我能够从另一台客户端机器登录到 pops,它给出了关于证书不受信任的通常警告。但是,我确实注意到证书引用了不正确的主机名,这是在我重建 VPS 并愚蠢地安装和配置 Dovecot 并设置了错误的主机名后引起的。

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

有些网站说要检查你的语法,比如ssl_cert = </etcvsssl_cert = /etc但这并没有什么不同。我也很乐意暂时禁用 ssl 来解决错误,但这也失败了。

刚才我试图创建一个指向预建密钥的符号链接/etc/dovecot/etc/dovecot.pem但我得到了相同的消息。

小智 5

然而旧帖子:错误来自于主配置文件 dovecot.conf 需要在末尾有一行:“!include conf.d/*.conf”。

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

我认为这就是为什么更改“conf.d/”中配置文件中的设置没有任何区别的原因

另外,如果尚未在 10-ssl.conf 或 dovecot.conf 中设置 SSL,为什么会说 SSL 已启用?在哪里启用它?

这是因为默认配置是 ssl = yes。没有包含 10-ssl.conf 文件,您可以在其中停用 ssl 或设置 cert 文件,从而获得该结果。


Pau*_*aul 1

我在 中的 Dovecot 配置dovecot/conf.d/10-ssl.conf(在两个不同的服务器上运行)是:

ssl = yes
ssl_cert = </path/to/cert.file
ssl_key = </path/to/key.file
Run Code Online (Sandbox Code Playgroud)

我使用证书颁发机构,所以我也有:

ssl_ca = </path/to/ca-bundle.pem
Run Code Online (Sandbox Code Playgroud)

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

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