昨天下午太無聊就 Vultr 架了一台 Postfix + Dovecot + spf + DKIM + DMARC 的 Mail Server 來完,後來想說直接用 Gmail 當 SMTP Client ,結果寄信的時候卻遇到這個問題:TLS Negotiation failed, the certificate doesn’t match the host.
查了一下,這問題最近一大票人遇到,感覺其中一定有鬼:
果不其然是 Google 修改政策,提高 Gmail 的安全層級,必須要使用正確的 TLS 憑證才能連線,讓很多使用 Gmail 作為 Client 的人沒辦法寄信.XD
詳情可以參考 Google 官方部落格:Improve email security in Gmail with TLS by default and other new features
檢查憑證
請使用這個指令檢查你的 Postfix 的憑證是否正確:
openssl s_client -connect smtp.example.com:587 -starttls smtp
其中這兩個框的 Domain Name 必須相同,我是使用 acme.sh 幫我自動更新憑證。
檢查 Postfix 憑證
以 Let’s Encrypt 來說,憑證必須設定正確,我在這邊卡了一天QQ,必須使用 mail.example.com-fullchain.crt
,不可使用 mail.example.com.crt
,不然會跟我一樣浪費時間 QQ
smtpd_tls_cert_file = /etc/pki/tls/certs/mail.example.com-fullchain.crt<br /> smtpd_tls_key_file = /etc/pki/tls/private/mail.example.com.key
大概就這樣子了,最近在研究 Proxmox Mail Gateway,找時間再把一些實驗的過程寫上來好了~