解決 Gmail 管理 Postfix 出現「TLS Negotiation failed, the certificate doesn’t match the host.」問題

昨天下午太無聊就 Vultr 架了一台 Postfix + Dovecot + spf + DKIM + DMARC 的 Mail Server 來完,後來想說直接用 Gmail 當 SMTP Client ,結果寄信的時候卻遇到這個問題:TLS Negotiation failed, the certificate doesn’t match the host.

 

查了一下,這問題最近一大票人遇到,感覺其中一定有鬼:

https://support.google.com/mail/thread/38789651

 

果不其然是 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,找時間再把一些實驗的過程寫上來好了~


See also

comments powered by Disqus