gpt4 book ai didi

c# - 端口号和SSL/TLS有什么关系

转载 作者:太空宇宙 更新时间:2023-11-03 13:00:43 26 4
gpt4 key购买 nike

根据SmtpClient.EnableSsl property documentation ,此类恰好提供了一种使用 SSL 的方法 - 设置属性并使用基于 TLS 的 SSL。它专门讨论了另一种不受支持的方式:

An alternate connection method is where an SSL session is established up front before any protocol commands are sent. This connection method is sometimes called SMTP/SSL, SMTP over SSL, or SMTPS and by default uses port 465. This alternate connection method using SSL is not currently supported.

SMTP,尤其是它的安全方面,我不是很了解。这个问题 ( C# ASP.NET Send Email via TLS ) 指出并非所有 SMTP 服务器都支持 TLS,但事实是,我不确定端口、SSL 和 TLS 之间的关系。我认为 SSL 和 TLS 是独立的协议(protocol),但“SSL over TLS”听起来更像是在视频压缩领域拥有独立的容器/编解码器/传输。

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

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

最佳答案

虽然使用了术语“SMTP over TLS”,但我在您的链接中没有看到任何地方提到“SSL over TLS”,这可能是造成混淆的原因吗?

就端口而言,普通 SMTP 端口 (25) 期望使用的协议(protocol)是纯 SMTP,而 SMTPS 端口 (465) 期望客户端首先建立安全连接使用 SSL/TLS,然后将继续通过安全通道“说出”正常的 SMTP。这与同样使用不同端口的 HTTP 与 HTTPS 非常相似。

考虑到 SmtpClient 的事实,以上内容有些没有实际意义不支持这种安全 SMTP 方法,但是当 EnableSsl已设置,而是期望连接到标准 SMTP 服务器(端口 25),并且在通常的 SMTP 介绍之后发出 STARTTLS命令向服务器发出信号,表明它即将开始 TLS 握手以“升级”连接以确保安全。从这一点来看,事情与上面的 SMTPS 机制基本相同。

当然,要实现这一点,服务器必须支持这种安全方法,并且还必须公布 STARTTLS 的可用性。命令响应客户端的初始 EHLO , 否则一个 SmtpClient配置为 EnableSsl = true尝试按照文档中的说明发送时会抛出异常。

关于c# - 端口号和SSL/TLS有什么关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32373202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com