所有部署指南 部署

郵件伺服器的 SSL/TLS 配置(Postfix、Dovecot、Exchange)

保護你網站的同一個 Let’s Encrypt 證書也可以加密你的郵件連線。本指南涵蓋最常見郵件伺服器的 TLS 配置。

為什麼郵件需要 TLS

沒有 TLS,郵件流量(包括密碼和郵件內容)以明文傳送:

  • SMTP(傳送郵件)— 埠 25/587 預設未加密
  • IMAP(讀取郵件)— 埠 143 預設未加密
  • POP3(讀取郵件)— 埠 110 預設未加密

TLS 加密這些連線的方式與 HTTPS 加密 Web 流量相同。現代郵件用戶端期望 TLS 並會對未加密連線發出警告。

證書設定

你可以將 GetHTTPS 生成的同一套證書檔案同時用於 Web 伺服器和郵件伺服器——只要證書覆蓋了郵件伺服器使用的主機名(如 mail.example.com)。

獲取覆蓋郵件主機名的證書:

  1. 在 GetHTTPS 中,新增 mail.example.com(或 MX 記錄指向的任何主機名)
  2. 你可以將它與 Web 域名一起包含:example.com + www.example.com + mail.example.com
  3. 下載檔案:fullchain.pemprivkey.pem

Postfix (SMTP)

編輯 /etc/postfix/main.cf

# TLS for outbound mail (sending)
smtp_tls_security_level = may
smtp_tls_loglevel = 1

# TLS for inbound mail (receiving) — STARTTLS on port 25/587
smtpd_tls_cert_file = /etc/ssl/gethttps/fullchain.pem
smtpd_tls_key_file = /etc/ssl/gethttps/privkey.pem
smtpd_tls_security_level = may
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_loglevel = 1

對於 submission(埠 587),編輯 /etc/postfix/master.cf

submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes

重新載入:sudo systemctl reload postfix

Dovecot (IMAP/POP3)

編輯 /etc/dovecot/conf.d/10-ssl.conf

ssl = required
ssl_cert = </etc/ssl/gethttps/fullchain.pem
ssl_key = </etc/ssl/gethttps/privkey.pem
ssl_min_protocol = TLSv1.2
ssl_prefer_server_ciphers = no

注意檔案路徑前的 <——Dovecot 使用此語法來內聯讀取檔案內容。

重新載入:sudo systemctl reload dovecot

IMAP/POP3 埠

服務未加密STARTTLS隱式 TLS(推薦)
IMAP143143(升級)993
POP3110110(升級)995
SMTP submission587587(升級)465 (smtps)

現代郵件用戶端應連線到隱式 TLS 埠(993、995、465)。在 Dovecot 和 Postfix 中同時配置這些埠和 STARTTLS 埠。

驗證郵件 TLS

# Test SMTP STARTTLS
openssl s_client -connect mail.example.com:587 -starttls smtp

# Test IMAP implicit TLS
openssl s_client -connect mail.example.com:993

# Test SMTP implicit TLS (smtps)
openssl s_client -connect mail.example.com:465

查詢 Verify return code: 0 (ok) 和你的證書詳情。

續簽

當你續簽 Let’s Encrypt 證書時,替換檔案並同時重新載入 Web 伺服器和郵件伺服器:

sudo systemctl reload nginx      # web
sudo systemctl reload postfix    # SMTP
sudo systemctl reload dovecot    # IMAP

如果使用 Certbot 配合 --deploy-hook,將郵件伺服器的重新載入新增到 hook 指令碼中。

常見問題

可以將同一個證書用於 Web 和郵件嗎?

可以——只要證書的 SAN(Subject Alternative Name)包含郵件伺服器的主機名。如果你的 MX 指向 mail.example.com,在申請證書時包含該名稱。

Let’s Encrypt 適用於郵件伺服器嗎?

適用。Let’s Encrypt 證書是標準的 X.509 證書,可與任何支援 TLS 的服務配合使用——不僅僅是 Web 伺服器。證書不關心它被用於 HTTPS、SMTP、IMAP 還是其他任何用途。

每個郵件協議都需要單獨的證書嗎?

不需要。一個證書可以同時用於 SMTP(Postfix)、IMAP(Dovecot)和你的 Web 伺服器。將所有服務指向相同的 fullchain.pemprivkey.pem

Microsoft Exchange 怎麼處理?

Exchange 使用 PFX/PKCS#12 格式。將你的 PEM 檔案轉換為 PFX,然後透過 Exchange Admin Center → Servers → Certificates → Import 匯入。過程類似於 IIS 證書安裝

相關文章

快速開始 2026-05-08
如何獲取免費 SSL 證書(分步指南)
5 分鐘從 Let's Encrypt 獲取免費 SSL 證書 — 無需安裝軟體、無需註冊賬號。涵蓋 4 種方法、兩種驗證方式、6 個平臺的安裝教程和故障排除。
部署 2026-05-08
如何在 Nginx 上安裝 SSL 證書
在 Nginx 上安裝 SSL 證書的分步指南。涵蓋檔案上傳、完整 server 塊配置、TLS 最佳實踐、HTTP/2、HSTS、重新導向設定、測試以及 6 個常見錯誤的排查方法。
SSL 與憑證 2026-05-07
SSL 證書格式:PEM、PFX、DER 詳解
理解 PEM、PFX/PKCS#12 和 DER 證書格式。瞭解你的伺服器需要哪種格式,以及如何使用 OpenSSL 在它們之間轉換。
在瀏覽器中取得免費 SSL 憑證
無需安裝,無需帳號。私鑰始終留在你的裝置上。
取得憑證