检查 SMTP 服务器是否启用 SSL 的最佳方法是什么?

Ran*_*ell 7 ssl smtp

检查 SMTP 服务器是否启用 SSL 的最佳方法是什么?

后续问题:如果它尚未启用 SSL,如何使其启用 SSL。

操作系统是 CentOS。

Dan*_*ley 17

这取决于您是指 SSL 还是 TLS。

  • SSL在 TCP/465 上有自己的专用端口。测试它是否存在的最佳方法是使用 OpenSSL 出色的 s_client,它会为您协商 SSL 技巧。

    openssl s_client -connect localhost:465
    
    Run Code Online (Sandbox Code Playgroud)

    如果您的服务器未绑定到 localhost,那么显然将其替换为 IP 或主机名。

  • TLS起初看起来就像普通的 SMTP。加密是在纯文本协议之上协商的。您可以通过向服务器发出 EHLO 请求来测试它是否可用。为此,您可以使用 Netcat 或 Telnet 客户端。

    $ nc -v localhost 25
    localhost [127.0.0.1] 25 (smtp) open
    220 mail.example.com ESMTP Exim 4.69 Fri, 11 Sep 2009 09:25:20 +0100
    ehlo test
    250-mail.example.com Hello localhost [127.0.0.1]
    250-SIZE 10485760
    250-PIPELINING
    250-STARTTLS
    250 HELP
    
    Run Code Online (Sandbox Code Playgroud)

    重要的一行是倒数第二行,它宣传了 STARTTLS 功能。

为了说明如何为您的邮件服务器启用 SSL/TLS,您需要告诉我们您使用的是什么邮件包。

  • 如果添加 -starttls smtp,您也可以将 openssl 用于 TLS (10认同)
  • 这个答案混淆了术语!!SSL 和 TLS 只是加密协议。当发帖者谈论“TLS”时,我相信他真正的意思是“STARTTLS”。请参阅下面我的回答。 (2认同)