据我了解,两者都加密了连接。但是,SSL/TLS “强制”邮件客户端从一开始就加密通道。现在假设我telnet mail.server 25
,在 ehlo 之后,我看到了 STARTTLS 作为服务器允许我(邮件客户端)使用的身份验证选项。如果我选择 STARTTLS 是否意味着我可以针对服务器(使用我的数字证书)验证我自己(邮件客户端)?为什么以及如何?
我正在执行以下操作,但我不明白客户端身份验证部分的来源:
telnet some.mail.server 25
ehlo some.mail.server
...
250-STARTTLS
...
STARTTLS
mail from: guy
rcpt to: otherGuy
data
someting
.
quit
我不应该将客户端证书发送到服务器吗?我尝试使用openssl s_client -starttls smtp
它实际上提供了 -cert 和 -key 选项来指定证书和私钥。
所以,事实上,与 STARTTLS 相比,SSL/TLS 的唯一缺点是,由于连接会立即加密,因此客户端无法在同一端口上发送其证书。只有服务器可以发送其证书。正确的?我脑子里有很多困惑......请为我澄清这一点。