Postfix,一個 IP 上的多個網域和多個證書

Postfix,一個 IP 上的多個網域和多個證書

我有一個具有多個網域的 postfix 伺服器,我希望每個網域都有一個特定的憑證。我的伺服器只有一個IP。

我找到了一個具有多IP的解決方案,但如果沒有,我不知道如何做到這一點。

  • 伺服器:Debian 9
  • 後綴:3.1.8

答案1

據我所知,postfix 中沒有可用的 SNI。然而。文件(http://www.postfix.org/TLS_README.html)說“沒有計劃在 Postfix SMTP 伺服器中實現 SNI”,儘管 Victor 在 1 月份提到他希望在 postfix 3.4 中添加 SNI 支援。備擇方案 :

  • 多個IP
  • 包含所有網域的憑證。

此外,為所有網域使用相同的 MX 也沒有什麼問題。 MX 主機名稱是您的服務網域或其他名稱。也將 helo/ehlo 名稱配置為相同/相似的主機名稱。如果這對 GoogleApps 和其他主要電子郵件提供者有好處,那麼對我們也有好處。

答案2

如果您使用的是 Postfix >=3.4,請考慮按照以下步驟進行調整從這個連結

步驟1:註解掉前兩行並將以下行加入/etc/postfix/main.cf:

    # smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem
    # smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem
    
    # provide the primary certificate for the server, to be used for outgoing connections (note the indentation)
    smtpd_tls_chain_files =
        /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/privkey.pem,
        /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/fullchain.pem
    
    # provide the map to be used when SNI support is enabled
    tls_server_sni_maps = hash:/etc/postfix/vmail_ssl.map

第2步:使用以下內容建立檔案 /etc/postfix/vmail_ssl.map:

    # Compile with postmap -F hash:/etc/postfix/vmail_ssl.map when updating
    # One host per line
    mail.yourprimarymailserverdomain.com /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/privkey.pem /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/fullchain.pem
    mail.yoursecondarymailserverdomain.com /etc/letsencrypt/live/mail.yoursecondarymailserverdomain.com/privkey.pem /etc/letsencrypt/live/mail.yoursecondarymailserverdomain.com/fullchain.pem
    # add more domains with keys and certs as needed

步驟3: 跑步postmap -F hash:/etc/postfix/vmail_ssl.map

步驟4: 跑步systemctl restart postfix

步驟5:現在測試您網域的 SSL!對於每個網域,執行以下命令:openssl s_client -connect localhost:25 -servername mail.mydomainname.com -starttls smtp

答案3

對於那些不知道的人來說,每次證書更改時都需要重建 SNI 表,因為生成了用於postmap -F導入文件的基礎表內容(它不僅僅存儲對文件名的引用)。

postmap -F hash:/etc/postfix/tls_server_sni_maps.map

答案4

Postfix 版本 3.4 現在支援 SNI,因此可以在 Ubuntu 19.10 中使用。

此外,有一個很好的理由需要這樣做 - Outlook 等用戶端嘗試使用與電子郵件網域相符的伺服器名稱進行自動設定。如果您的郵件帳戶位於 Gmail 或其他共用網域,這不是問題,但託管在具有多個網域的伺服器(甚至 VPS)上的個人網域需要這樣的解決方案

相關內容