我有一个不支持 TLS 1.2 的旧软件。但是 SMTP 服务器只支持 TLS 1.2。
现在我想使用 stunnel 连接到 SMTP 服务器并监听 smtp 访问。我已经有此服务器的有效证书。在配置不同的 TLS 版本之前,我只想测试这个“stunnel 代理”是否正常工作。我使用 Thunderbird 连接到 :587 在 [TLS_proxy_connector] 和 [TLS_proxy_listener] 我有protocol = smtp
. 我试图在一个或两个部分中将它们注释掉。但是我立即收到错误或某种超时,Thunderbird 无法发送电子邮件。
这是stunnel配置:
setuid = stunnel4
setgid = stunnel4
foreground = yes
;don't write pid
pid =
[TLS_proxy_connector]
client = yes
accept = 127.0.0.1:53681
protocol = smtp
connect = <mailserver>:587
verify = 2
CApath = /etc/ssl/certs/
checkHost = <mailserver>
;OCSPaia = yes
[TLS_proxy_listener]
accept = 587
protocol = smtp
key = /etc/ssl/private/key.pem
cert = /etc/ssl/certs/cert_.pem
CAfile = /etc/ssl/certs/chain_.pem
connect = 53681
我究竟做错了什么?还有其他更适合这里的工具吗?我知道我可以设置一个自己的邮件服务器,它接受 TLS 1.0 和 1.1 并用作智能主机,但这太过分了,因为我必须关心安全性。当前检查安全性,因为您只能使用有效凭据发送。谢谢你的帮助。
更新:当两个条目都有protocol = smtp
. 当对 TLS 版本进行进一步测试时,我将添加更多信息。
以上配置对于代理不同的 TLS 版本是正确的。无需在 stunnel 中为 SSL/TLS 配置任何特殊内容。
当您通过
sudo apt install stunnel
.原始服务器的testssl.sh输出
testssl.sh 通过 stunnel 输出代理端口
注意:使用 TLS 1 和 1.1 通常是个坏主意,因为这两种协议都有安全漏洞,例如https://www.venafi.com/blog/why-its-dangerous-use-outdated-tls-security-protocols 在这种情况下,这个 TLS 代理端口将只在内部网络中可用,并且永远不会暴露在互联网上,所以可以使用这个 hack,直到这个不支持 TLS 1.2 的旧软件被替换。