将我的服务器升级到 20.04。现在我无法通过 dovecot 使 IMAP 工作。我得到:
Aug 1 23:25:53 defaria dovecot: imap-login: Error: Failed to initialize SSL server context: Can't load SSL certificate: error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small: user=<>, rip=184.182.63.133, lip=208.113.131.137, session=<iKgXGN+rCIC4tj+F>
Run Code Online (Sandbox Code Playgroud)
我找到了很多解决这个问题的方法,但似乎都没有。我已经生成并重新生成了服务器密钥、签名证书等,并配置了 dovecot 来查看它们,但我得到的只是这个神秘的错误消息。我之前已经很好地配置了这一切,只是从 18.04 -> 20.04 更新打破了这个。
我怎样才能解决这个问题?一步一步......我应该如何生成证书和密钥并将它们正确配置到 dovecot 以便 imap 再次工作?
有趣的是我可以通过 telnet 驱动一个会话到 imap 并且我可以登录访问消息。但是当我尝试对我的邮件客户端(thunderbird)做同样的事情时,我将上述错误写入/var/log/mail.log
小智 14
这些解决方案都不适合我,因为/usr/share/dovecot/dh.pem已经存在并且是所需的 4096 位。
事实证明,解决方案就像删除/var/lib/dovecot/ssl-parameters.dat文件一样简单,然后dovecot使用以下命令重新启动:
sudo systemctl restart dovecot
Run Code Online (Sandbox Code Playgroud)
小智 10
我需要将以下内容添加到我的/etc/dovecot/conf.d/10-ssl.conf文件中:
ssl_dh = </usr/share/dovecot/dh.pem
Run Code Online (Sandbox Code Playgroud)
dh.pem在我的情况下,该文件确实已经存在,但是 YMMV。
您的问题与以下问题类似(但不相同):
我当前没有运行 dovecot,所以我无法测试此解决方案,但您应该能够通过编辑本地 dovecot 配置来调整 dovecot 的密码设置(不是系统范围内的)。
尝试添加以下行/etc/dovecot/conf.d/10-ssl.conf
ssl_cipher_list = HIGH:!DH:!aNULL
Run Code Online (Sandbox Code Playgroud)
您可以尝试在 SSL 设置中增加 Diffie-Hellman 密钥长度。阅读 dovecot 文档以获取更多信息: https ://doc.dovecot.org/admin_manual/ssl/dovecot_configuration/