因為已經取得 免費的 SSL 憑證:Let’s Encrypt!
所以就想把這個 SSL憑證 也用在 Dovecot 上,讓 pop3 和 imap 都可以使用 SSL/TLS 加密
環境說明
- CentOS 7 x64
- Dovecot 2.2.10
Dovecot 原始設定
- disable_plaintext_auth = no
- auth_mechanisms = plain login
設定流程
範例 Domain: ezbox.idv.tw
- 修改 /etc/dovecot/conf.d/10-ssl.conf
1234567# 設定 yes 是可以選擇使用 SSL/TLS 加密,也可以走不加密的 pop3/imap# 設定 required 是ssl = yes# 設定 憑證路徑,直接指向 Let's Encrypt 取得的憑證ssl_cert = </etc/letsencrypt/live/ezbox.idv.tw/fullchain.pemssl_key = </etc/letsencrypt/live/ezbox.idv.tw/privkey.pem
- 修改 /etc/dovecot/conf.d/10-auth.conf
12# 驗證時如果帳號包含 domain 資訊,就忽略掉 domain 的部份auth_username_format = %n
- 修改 /etc/pki/dovecot/dovecot-openssl.cnf
12345678# 預設 1024,修改成 2048default_bits = 2048# 改成 申請 SSL 憑證的 domainCN=ezbox.idv.tw# 我填上申請 ssl 憑證時填的 email addressemailAddress=email@address
- 重新啟動 dovecot
1systemctl restart dovecot
這樣就完成了!
鸚鵡一開始一直卡在第2步驟沒有做,登入驗證一直失敗
最後修改 10-logging.conf 檔案,設定 verbose_ssl = yes 也開啟 debug 模式
才在 log 檔案中交叉比對找到登入帳號的差異
1 2 3 4 5 |
# imap 登入 auth-worker: Debug: pam(username,IP_ADDRESS): lookup service=dovecot # imaps 登入 auth-worker: Debug: pam(username@ezbox.idv.tw,IP_ADDRESS): lookup service=dovecot |
另外
MUA (Mail User Agent) 設定連線的 伺服器 也要填上申請SSL憑證的 domain 才行
也就是說,如果是獨立的 mail server ,例如:mail.domain.tw
那就得在這台 mail server 上申請SSL憑證囉
有提供 WebMail 就用 webroot 的方式申請
沒有提供 WebMail 可以使用 standalone 的方式申請,但記得 80/443 port 都要能通
參考資料
Dovecot SSL configuration
延伸閱讀