我配置了 postfix 以强制使用 TLS。当外部客户端尝试使用此服务器发送电子邮件时,没有任何问题。但使用 webmail (127.0.0.1) postfix 需要 TLS:
delivery temporarily suspended: TLS is required, but was not offered by host 127.0.0.1[127.0.0.1])
我需要对 master.cf 做哪些更改?
smtp_use_tls = yes
smtp_tls_security_level = encrypt
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_key_file = /etc/postfix/ssl/xxx.key
smtpd_tls_cert_file = /etc/postfix/ssl/xxx.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
答案1
你可以:
smtp_tls_security_level
= may
这将允许您的服务器将邮件传递到不提供 TLS 的主机或具有不良证书的主机(否则它会重试未加密的邮件)。smtpd_tls_security_level
= may
这将导致您的服务器向任何监听端口上的客户端提供 TLS 加密。smtpd_tls_security_level = encrypt
这将导致您的服务器要求任何监听端口上的所有客户端进行 TLS 加密。
对于互联网主机来说,同时执行 1 和 2 是很常见的,但是您比我更了解您的要求。
答案2
我怀疑您是否可以在不运行第二个 postfix 实例并将 smtpd_tls_auth_only 设置为 no,然后更改 webmail 软件以将邮件发送到该实例的情况下做到这一点。
如果可能的话,您可以考虑重新配置网络邮件以使用 TLS 或直接在本地传递邮件而不是使用 TCP 连接。
答案3
stunnel 将修复此问题。它会创建与 postfix 的 SSL(TLS) 连接: