執行郵件伺服器是否需要 Web 伺服器?
我正在嘗試創建一個郵件伺服器,但我無法連接到我的 DO droplet 的域,我需要這樣做才能獲得 Let’s Encrypt SSL 證書。它拒絕連接。Letdebug.net 說:
$$ 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 的 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
.