Postfix

即使“smtp_tls_security_level =指紋”,Postfix仍然抱怨“證書驗證失敗”

  • August 10, 2016

我正在嘗試使用 Postfix(RHEL6 上的 2.6.6 版)通過我們內部網路上的郵件中繼連接並發送郵件。我想在埠 25 上連接 STARTTLS(此伺服器上沒有埠 465)。郵件中繼使用自簽名 SSL/TLS 證書,因此我需要使用證書頒發機構跳過證書驗證。我發現smtp_tls_security_level = fingerprint它不檢查信任鏈、到期日期等。相反,它使用證書指紋進行驗證。

我認為這是一個完美的解決方案,但是當我嘗試發送電子郵件時,我仍然會收到/var/log/maillog那個說的錯誤postfix/smtp[15182]: certificate verification failed for xxxxxxxxxxxx[zz.zz.zz.zz]:25: untrusted issuer

我認為fingerprint安全級別的重點是跳過證書驗證。我誤解了這個選項的意義嗎?還有什麼我需要配置的嗎?

以下是來自的相關行main.cf

relayhost = [xxx.xxx.xxx]
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl-passwords
smtp_sasl_security_options=
smtp_generic_maps = hash:/etc/postfix/generic
smtp_use_tls = yes
smtp_tls_security_level = fingerprint
smtp_tls_fingerprint_digest = sha1
# fingerprint changed for ServerFault. just an example.
smtp_tls_fingerprint_cert_match = c1:d3:54:12:00:r0:ef:fa:42:48:10:ff:ac:1e:75:13:dd:ad:af:3e
smtp_tls_note_starttls_offer = yes

編輯:添加粗體

會在這裡回答我自己的問題。我沒有設法讓fingerprint驗證工作,但我確實發現瞭如何在沒有證書驗證的情況下獲得 TLS。從手冊

可以通過設置“smtp_tls_security_level = encrypt”來配置強制 TLS 加密。即使始終使用 TLS 加密,即使伺服器證書不受信任或名稱錯誤,郵件傳遞也會繼續。

我曾經嘗試過這一點,但一定沒有啟用所有正確的選項。但是使用上面的設置,我只是更改smtp_tls_security_levelencrypt,它工作正常。

引用自:https://serverfault.com/questions/614986