Web-Server

執行郵件伺服器是否需要 Web 伺服器?

  • January 19, 2021

我正在嘗試創建一個郵件伺服器,但我無法連接到我的 DO droplet 的域,我需要這樣做才能獲得 Let’s Encrypt SSL 證書。它拒絕連接。Letdebug.ne​​t 說:

$$ My domain name $$有一條 A (IPv4) 記錄([我的 droplet 的 IP 地址)),但通過埠 80 對該地址的請求未成功。您的 Web 伺服器必須至少有一個有效的 IPv4 或 IPv6 地址。 71ms: 遇到錯誤: dial tcp

$$ my droplet’s 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 伺服器?當涉及到這些東西時,我是一個完全的新手。

有人告訴我,只有 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。

您可以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.

引用自:https://serverfault.com/questions/1050453