顯示廣告
隱藏 ✕
看板 KnucklesNote
作者 Knuckles (站長 那克斯)
標題 [CentOS7] Postfix 設定 TLS 加密郵件
時間 2021-12-21 Tue. 05:58:36


使用Postfix寄信到Gmail時,會看到安全性被標上紅色未加密的圖示
[圖]


如果想要寄出被標為有加密的郵件,要設定Postfix的TLS加密

申請SSL憑証

使用 Certbot 來幫寄件伺服器申請免費的 Let's Encrypt SSL 憑証

要先安裝 EPEL (Extra Packages for Enterprise Linux) 擴充資源庫
$ sudo yum install epel-release

安裝 openssl
$ sudo yum update ca-certificates openssl

安裝 Certbot
$ sudo yum install certbot python2-certbot-apache

使用 cerbot 申請 mail.disp.cc 的 SSL 憑証
$ sudo certbot certonly --apache -d mail.disp.cc

certonly 代表只申請憑證,不要修改 http.conf
--apache 代表網頁伺服器是使用Apache
-d mail.disp.cc 要改成自己的郵件伺服器網址

執行後會要你輸入E-mail做為憑證到期通知,按c略過的話會停止認證
接著會要你同意使用條款,輸入 a 同意
接著問你是否要接收相關新聞的 E-mail,輸入 n 不同意

申請成功的話會產生兩個檔
憑証: /etc/letsencrypt/live/mail.disp.cc/fullchain.pem
私鑰: /etc/letsencrypt/live/mail.disp.cc/privkey.pem


設定 Postfix

修改 Postfix 設定檔
$ sudo vim /etc/postfix/main.cf
最後面加上
# 設定 TLS
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes
# 以下兩個檔案要改成上面產生的私鑰和憑証的檔案
smtpd_tls_key_file = /etc/letsencrypt/live/mail.disp.cc/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.disp.cc/fullchain.pem
smtpd_tls_CAfile = $smtpd_tls_cert_file
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_auth_only = yes

# 以上設定只有讓使用者跟Postfix之間有加密,
# 要再加上以下設定讓信件轉送至其他郵件伺服器時也有加密
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes

重載 Postfix 設定
$ sudo systemctl reload postfix


自動更新憑証

Let's Encrypt 的憑証期限只有三個月,
設定每個月自動檢查一次憑証,有效期低於一個月才會更新憑證
$ sudo vim /etc/crontab
# 加上這行,每月某個時間檢查,例如每月 4 日的 3:12
12 3 4 * *   root  certbot renew
# 有更新的話要重載一次 Postfix
22 3 4 * *   root  systemctl reload postfix


使用 checktls.com 可以檢查 TLS 設定是否正常
https://www.checktls.com/TestReceiver
[圖]


設定成功的話寄信到Gmail就會顯示有TLS加密了
[圖]



參考:
https://ezbox.idv.tw/63/lets-encrypt-ssl-smtp-tls-smpts/







--
※ 作者: Knuckles 時間: 2021-12-21 05:58:36 (台灣)
※ 編輯: Knuckles 時間: 2023-11-15 13:57:41 (台灣)
※ 看板: KnucklesNote 文章推薦值: 0 目前人氣: 0 累積人氣: 664 
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇