运行邮件服务器是否需要 Web 服务器?

运行邮件服务器是否需要 Web 服务器?

我正在尝试创建一个邮件服务器,但无法连接到我的 DO droplet 的域,而我需要这样做才能获得 Let's Encrypt SSL 证书。它拒绝连接。 letsdebug.ne​​t 说:

[我的域名] 有一个 A (IPv4) 记录([我的 droplet 的 IP 地址]),但通过端口 80 向该地址发出的请求未成功。您的 Web 服务器必须至少有一个有效的 IPv4 或 IPv6 地址。

71ms:遇到错误:拨号 tcp [我的 droplet 的 IP]:80:连接:连接被拒绝

因此,我决定尝试运行,sudo netstat -nlp输出以下内容:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:33060         0.0.0.0:*               LISTEN      2882/mysqld         
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      2882/mysqld         
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      493/systemd-resolve 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      768/sshd: /usr/sbin 
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      146987/master       
tcp6       0      0 :::22                   :::*                    LISTEN      768/sshd: /usr/sbin 
tcp6       0      0 :::25                   :::*                    LISTEN      146987/master       
udp        0      0 127.0.0.53:53           0.0.0.0:*                           493/systemd-resolve 
raw6       0      0 :::58                   :::*                    7           490/systemd-network 
raw6       0      0 :::58                   :::*                    7           490/systemd-network 

并且显然没有任何东西在端口 80 上监听。我如何让某个东西监听它?我需要安装 Nginx 或类似的东西吗 - 即设置一个 Web 服务器?我为什么要这样做?这是否意味着我需要构建一个 Web 服务器来安装邮件服务器?在这些东西方面,我完全是个新手。

我被告知只有 Let's Encrypt 证书才需要它。在教程,dovecot.pem用于证书和密钥文件。如果我使用 Dovecot,这是否足够?

更新:未找到我的子域名的 IP 地址

根据 Michael Hampton 的建议,我尝试sudo certbot certonly --standalone -d mail.example.com放入自己的邮件子域,但似乎又引发了另一个麻烦:

   Detail: No valid IP addresses found for [my mail subdomain]

这有点令人困惑。也许我设置错了 MX 记录?我将列出我的 DNS 记录(我已将 droplet 的 IP 地址和域名涂黑,因为我不知道在互联网上共享这些东西是否安全。如果有必要包含它们并且安全,我可以毫无问题地取消编辑):

我的 droplet 的 DNS 记录

这里,“值”列中删减的位全部被 droplet 的 IP 地址隐藏,而主机名中删减的位隐藏了我的域名 url。

答案1

您可以certbot在独立模式下使用以获取网站以外的服务的证书。例如:

sudo certbot certonly --standalone -d mail.example.com

在这种模式下,certbot 启动自己的内部 Web 服务器以便完成 HTTP 挑战,然后在最后停止它。

您的私钥和证书(或者更确切地说是指向它们的链接,即使证书稍后更新,它们仍将保持不变)将位于目录中/etc/letsencrypt/live。然后,您可以配置 Postfix、Dovecot 或您正在使用的任何程序,以便在此处找到它们。例如,您的证书链将是/etc/letsencrypt/live/mail.example.com/fullchain.pem,私钥将是/etc/letsencrypt/live/mail.example.com/privkey.pem

答案2

您需要一个 Web 服务(不一定是传统的 Web 服务器)来实现 HTTP1 认证的 Let's Encrypt 证书自动化。您不需要一个用于邮件本身的 Web 服务。还有其他方法可以获取证书。

答案3

邮件服务器绝对不需要 Web 服务器,这是两种完全不同的服务。但是,从 Lets Encrypt 获取 SSL 证书显然需要拥有 Web 服务器,因为这些证书是为 Web 服务器颁发的。

如果您只打算将其用于邮件服务器,则不需要“官方”证书(例如 Lets Encrypt 的证书)。您可以完全使用自签名证书,因为在 SMTP 交易期间,服务器之间不会检查证书。

相关内容