自 Certbot 2.0 起, Let's Encrypt 已开始默认颁发 ECC 证书。对于现代 Web 浏览器来说这不是问题,但 Let's Encrypt 证书也可以用于 HTTPS 之外的其他用途。即,某些 SMTP 服务器尚不支持 ECC 证书。STARTTLS
如果此类服务器尝试与使用 ECC 证书的 Postfix建立连接,则会失败。
日志表明不存在共享密码,尽管 Wireshark 显示 TLS 握手中的客户端 Hello 显然具有通过配置的列表的公共密码smtpd_tls_mandatory_ciphers = medium
。
postfix/smtpd[1337]: connect from mail.example.net[198.51.100.1]
postfix/smtpd[1337]: SSL_accept error from mail.example.net[198.51.100.1]: -1
postfix/smtpd[1337]: warning: TLS library problem: error:0A0000C1:SSL routines::no shared cipher:../ssl/statem/statem_srvr.c:2220:
postfix/smtpd[1337]: lost connection after STARTTLS from mail.example.net[198.51.100.1]
postfix/smtpd[1337]: disconnect from mail.example.net[198.51.100.1] ehlo=1 starttls=0/1 commands=1/2
该问题是由证书类型引起的。是否可以使用 Certbot 从 Let's Encrypt 获取 ECC 和 RSA 证书?如何配置 Postfix 同时使用它们?