Postfix TLS 配置

Postfix TLS 配置

我正在 Arch Linux 上设置 postfix 服务器。到目前为止,它似乎运行正常 - 我可以通过 成功与它通信telnet localhost 25。但是,当我尝试使用 openssl 进行连接时s_client,它会抱怨:

$ openssl s_client -connect localhost:25
CONNECTED(00000003)
140243743024808:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:766:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 228 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---

并以状态 1 退出。

相关部分/etc/postfix/main.cf

smtpd_tls_key_file = /path/to/server.key.pem
smtpd_tls_cert_file = /path/to/server.crt.pem
smtpd_tls_CAfile = /path/to/ca.pem

smtpd_tls_security_level = may

我也有非 pem 格式的密钥和证书,它们可以与使用它们的另一个服务(xmpp 服务器)一起正常工作。

我已经发现文档为了实现这一点,我需要取消注释一行并使用端口 587 而不是 25。这给了我与上面/etc/postfix/main.cf相同的输出。openssl s_client

我如何说服 Postfix 使用 TLS?

答案1

您不需要使用端口 587 进行 tls,因为它与应用程序协议无关。

我从 获得了与您完全相同的结果openssl s_client -connect localhost:25,但 tls 在我的服务器上运行正常。

目前我无法访问我的个人 wiki,因此无法粘贴正确的命令来检查您系统上的 tls 配置。但您可以使用检查TLS

答案2

我建议你阅读启动TLS。归根结底就是:启动未加密的纯文本连接,稍后升级到 TLS。该openssl命令不使用此方法,而是直接进行 SSL/TLS 握手。

MTA 的“一般”事实上的配置是将其配置为在端口 587 上提供 STARTTLS,在 465 上配置普通 SSL/TLS,在端口 25 上使用不安全的 STARTTLS 选项。据我所知,这不是标准,只是主要服务提供商似乎这样做的方式。

相关内容