请说明SMTP加密协议和端口(仅限服务器之间)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请说明SMTP加密协议和端口(仅限服务器之间)相关的知识,希望对你有一定的参考价值。
有人可以澄清邮件服务器连接到另一个邮件服务器的典型方式,以便提供加密的电子邮件吗?
我知道STARTTLS命令旨在将tcp连接升级到TLS,但我真的希望(作为服务器)在远程端口25上执行此操作吗?
我构建了自己的SMTP服务器(没有加密,在perl中)并且它托管我的所有电子邮件,但我从未在日志中看到任何尝试发送STARTTLS的远程服务器。我的服务器应该也运行在另一个端口上吗?为什么没有人试过STARTTLS?
最后,如果我希望人们在Gmail中看到锁定图标,当我连接到谷歌MX服务器发送电子邮件时,我要做的就是在该端口25上启动与STARTTLS的TLS会话?我是否需要SSL等权威机构验证的证书?
谢谢!
...发送加密电子邮件?
首先,传输加密邮件和使用您询问的STARTTLS之间存在差异。加密邮件通常指的是使用PGP或S / MIME的端到端加密,即发件人加密并且收件人对邮件进行解密。相反,STARTTLS不是端到端而只是逐跳加密:途中的每一跳(邮件服务器)都可以访问普通邮件,只有跳转之间的传输才会被加密。
...将tcp连接升级到TLS,但我真的希望(作为服务器)在远程端口25上执行此操作吗?
您应该使用端口25,因为这是唯一定义为与MX记录相关的传递端口。 STARTTLS的相关标准是RFC 3207。它描述了一个SMTP扩展,其中接收邮件服务器可以在对EHLO的响应中宣布支持STARTTLS,然后客户端(即另一个邮件服务器或邮件用户代理)可以使用STARTTLS命令升级当前连接。简而言之,流程是这样的:
< 220 server.example.com SMTP ready
> EHLO client.example.org
> 250-8BITMIME
> 250 STARTTLS
> STARTTLS
< 220 go ahead
... TLS handshake happens, initiated by client ...
> EHLO client.example.com
< 250-8BITMIME
< 250 AUTH PLAIN LOGIN
...
...但我从未在日志中看到任何尝试发送STARTTLS的远程服务器
如果您未在EHLO响应中宣布支持STARTTLS,则客户端不会尝试STARTTLS。
...在Gmail中查看锁定图标,当我连接到谷歌MX服务器发送电子邮件时,我所要做的就是在该端口25上启动与STARTTLS的TLS会话?我是否需要SSL等权威机构验证的证书?
只有当您是接收邮件的邮件服务器时才需要证书,因此如果使用STARTTLS则作为TLS服务器工作。如果将邮件发送到Gmail,您就是发送邮件的客户端。在这种情况下,您可能使用客户端证书,但您不需要。因为您正在使用Perl:Net::SMTP
的当前版本(从版本3.x开始)只要安装了IO::Socket::SSL
就支持已包含的TLS。你只需要记录一下starttls
的调用就可以发送带有TLS的邮件。
我知道STARTTLS命令旨在将tcp连接升级到TLS,但我真的希望(作为服务器)在远程端口25上执行此操作吗?
是。如RFC 3207所定义的,对于“真实”SSL连接,使用端口465或587,但不应再使用465。因为您询问服务器协议,所以我不了解您的客户。
以上是关于请说明SMTP加密协议和端口(仅限服务器之间)的主要内容,如果未能解决你的问题,请参考以下文章
通俗地解释一下 TCP/UDP 协议和 HTTPFTPSMTP 协议之间区别