端口号与SSL/TLS有什么关系?

本文关键字:什么 关系 TLS 口号 SSL | 更新日期: 2023-09-27 18:11:11

根据SmtpClient。EnableSsl属性文档,该类提供了使用SSL的一种方法-设置属性并使用TLS上的SSL。它特别讨论了不支持的另一种方式:

另一种连接方法是建立SSL会话在发送任何协议命令之前。这种连接方法有时被称为SMTP/SSL, SMTP over SSL,或SMTPS,默认情况下使用端口465。这种使用SSL的替代连接方法不是目前支持。

SMTP,特别是它的安全方面,我不是很了解。这个问题(c# ASP。. NET通过TLS发送电子邮件)提出了并非所有SMTP服务器都支持TLS的观点,但事实是,我不确定端口,SSL和TLS之间的关系。我认为SSL和TLS是独立的协议,但"SSL over TLS"听起来更像是在视频压缩领域中有独立的容器/编解码器/传输。

我假设虽然我可以将端口从25更改为465,但这不会神奇地改变任何东西-但是邮件服务器是否可能被配置为仅侦听特定端口上的SSL请求(即不是25)?

使用SmtpClient,我是否需要做任何事情,而不是设置EnableSsl来切换我的应用程序是否使用SSL ?

端口号与SSL/TLS有什么关系?

我在你的链接中没有看到任何地方提到"SSL over TLS",尽管使用了术语"SMTP over TLS",这可能是造成一些混乱的原因吗?

就端口而言,普通SMTP端口(25)期望使用的协议是普通SMTP,而SMTPS端口(465)期望客户端首先使用SSL/TLS建立安全连接,然后将通过安全通道继续"通话"普通SMTP。这与HTTP和HTTPS非常相似,它们也使用不同的端口。

考虑到SmtpClient不支持这种安全SMTP方法的事实,上面的内容有些没有意义,但是当EnableSsl设置时,相反期望连接到标准SMTP服务器(端口25),并且在通常的SMTP引入之后发出STARTTLS命令,该命令向服务器发出信号,表示它即将启动TLS握手以"升级"连接以确保安全。从那时起,事情基本上与上面的SMTPS机制相同。

当然,要做到这一点,服务器必须支持这种安全方法,并且还必须在对客户端初始EHLO的响应中宣布STARTTLS命令的可用性,否则配置了EnableSsl = trueSmtpClient在尝试按照文档中指示的方式发送时将抛出异常。