解決 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
smtpd_tls_key_file = /etc/pki/tls/private/mail.example.com.key

 

大概就這樣子了,最近在研究 Proxmox Mail Gateway,找時間再把一些實驗的過程寫上來好了~

2 Comments

  1. 我今天也遇到這問題,也是卡關。
    請教一下,fullchain這個是只要在網址後面加上”-fullchain’是這個意思嗎?
    我加了,但是重啟apache webserver是不錯誤
    Nginx+apache+php-fpm

    救解,謝謝

    1. fullchain 只是我自訂的路徑喔!
      full chain certs = CA + cert
      如果試用 Let’s Encrypt 的話,他應該會自動幫你 cat 成一個叫做 fullchain.cer 的檔案

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *