Postfix、1つのIP上の複数のドメインと複数の証明書

Postfix、1つのIP上の複数のドメインと複数の証明書

複数のドメインを持つ postfix サーバーがあり、それぞれに特定の証明書が必要です。私のサーバーには IP が 1 つしかありません。

複数の 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: 先頭の 2 行をコメント アウトし、次の行を /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 であっても) でホストされている個人ドメインには、次のようなソリューションが必要です。

関連情報