Dovecot:SSL 无法正常工作(没有合适的签名算法),其他守护进程运行正常

Dovecot:SSL 无法正常工作(没有合适的签名算法),其他守护进程运行正常

我尝试使用 Letsencrypt 证书通过 SSL/TLS 保护我的 Dovecot。Dovecot 立即关闭所有 TLS 连接,并在日志中报告令人困惑的错误“没有合适的签名算法”。

我在 Ubuntu 23.10 上使用 Dovecot 2.3.20。我的 OpenSSL 版本是 3.0.10。Letsencrypt 证书适用于 OpenLDAP (ldapd)、Postfix 和 Apache。客户端可以使用密码 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 连接 TLSv1.3。服务器 TLS 证书具有 P384r1 上的 EC 密钥。

只有 Dovecot 无法正常工作。我的 Dovecot 配置

ssl = yes
verbose_ssl = yes
ssl_cert = </etc/letsencrypt/live/my-host.my-domain.tld/chain.pem
ssl_key = </etc/letsencrypt/live/my-host.my-domain.tld/privkey.pem
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = </usr/share/dovecot/dh.pem
ssl_min_protocol = TLSv1.2

每当尝试连接时,Dovecot 都会记录

dovecot[345145]: imap-login: Debug: SSL: where=0x10, ret=1: before SSL initialization
dovecot[345145]: imap-login: Debug: SSL: where=0x2001, ret=1: before SSL initialization
dovecot[345145]: imap-login: Debug: SSL: where=0x2002, ret=-1: before SSL initialization
dovecot[345145]: imap-login: Debug: SSL: where=0x2001, ret=1: before SSL initialization
dovecot[345145]: imap-login: Debug: SSL alert: where=0x4008, ret=552: fatal handshake failure
dovecot[345145]: imap-login: Debug: SSL: where=0x2002, ret=-1: error
dovecot[345145]: imap-login: Debug: SSL error: SSL_accept() failed: error:0A000076:SSL routines::no suitable signature algorithm
dovecot[345145]: imap-login: Disconnected: Connection closed: SSL_accept() failed: error:0A000076:SSL routines::no suitable signature algorithm (no auth attempts in 0 secs): user=<>, rip=79.240.>
dovecot[345145]: imap-login: Debug: SSL error: SSL_accept() syscall failed: Invalid argument

在客户端,我尝试通过建立连接,openssl s_client -crlf -connect my-host.my-domain.tld:993并用 wireshark 记录数据包。客户端向服务器发送了正确的 TLS 问候(带有大量合适的密码、签名方案等),然后出现解码错误,因为服务器只是关闭了连接。

另一个有趣的事实:如果我尝试限制服务器端的潜在密码列表,并将 Dovecot 配置设置为类似这样的内容

ssl_cipher_list = TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256

Dovecot 拒绝启动并声称密码未知。

相关内容