web-dev-qa-db-ja.com

PostfixとSSLを使用した仮想ドメイン

複数の仮想ドメインをホストするためのPostfixメールサーバーのセットアップがあります(xxx.comおよびyyy.comなど)。

ユーザーは、送信メールサーバーをmail.xxx.comおよびmail.yyy.comとして構成します。すべてのメールサーバーは、同じ物理Postfixサーバー(同じLinuxサーバー上で実行されているPostfixの単一インスタンス)を参照します。

Postfix smtpd_tls_cert_file構成オプションにはどのSSL証明書が必要ですか?

または、mail.xxx.comに単一の証明書を使用し、yyy.comのユーザーにmail.xxx.comを送信サーバーとして使用するように指示する必要がありますか?これは、別々の仮想サーバーの幻想を壊します。

[注:ドメインは完全に独立しています。これらは、共通のルートを共有する複数のサブドメインではありません]。

21
nimrodm

または、mail.xxx.comに単一の証明書を使用して、yyy.comのユーザーにmail.xxx.comを送信サーバーとして使用するように指示する必要がありますか?

はい、最終的には、それを行うか、複数のCommonNameまたはSubjAltName属性を持つ証明書を使用する必要があります。

Postfixがクライアントが要求したホスト名を知る方法はありません。私のようなものはありません。 e。要求されたドメインを示すHTTP/1.1 Hostヘッダーであり、Postfixは [〜#〜] sni [〜#〜] をまだサポートしていません。

メールサーバーに2つの異なるドメインがあることに本当に依存している場合は、2つの別々のネットワークインターフェイス/ IPアドレスでsmtpdの2つのインスタンスを実行する必要があります。通常、「中立」ドメインを選択し、それを使用するようユーザーに指示します。

10
joschi

実際...各ドメインで有効なSSL証明書を使用する場合は、2つの解決策があります。マルチドメイン証明書を使用するか、各ドメインを一意のIPに設定します。最初の解決策はひどいです:それらの証明書は通常非常に高価です(安価なものを見つけることができます)、それらは同じ証明書で認証したいすべてのドメインをリストし、そして最も重要なことに、それらは一度だけ発行されるので、追加新しいドメインが1つしかないということは、まったく新しい証明書を取得することを意味します。

より良い解決策は、各ドメインを独自のIPに配置し、各証明書をそれぞれのIPと照合することです。

Postfixでこれを行う方法を次に示します。

まず、各ドメインの証明書を/ etc/postfix /ディレクトリに配置します(/ etc/postfix/ssl /ディレクトリを作成することもできます)注:iを使用しますPlesk。pem証明書ファイルを使用しますが、.keyファイルと.cerファイルも使用できます(.pemファイルは、.keyファイルと.cerファイルをこの順序で連結したものです)

次に、/ etc/postfix /master.cfファイルを変更する必要があります

元々、私はこのように見えました(おそらく、サーバーをセットアップした後に最後の3つのIPを追加したためです:

1.1.1.1- unix - n n - - smtp -o smtp_bind_address=1.1.1.1 -o smtp_bind_address6= -o smtp_address_preference=ipv4

2.2.2.2- unix - n n - - smtp -o smtp_bind_address=2.2.2.2 -o smtp_bind_address6= -o smtp_address_preference=ipv4

smtp inet n - n - - smtpd
smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes
submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticate d,reject -o smtpd_sender_restrictions=

3.3.3.3- unix - n n - - smtp -o smtp_bind_address=3.3.3.3 -o smtp_bind_address6= -o smtp_address_preference=ipv4

4.4.4.4- unix - n n - - smtp -o smtp_bind_address=4.4.4.4 -o smtp_bind_address6= -o smtp_address_preference=ipv4

5.5.5.5- unix - n n - - smtp -o smtp_bind_address=5.5.5.5 -o smtp_bind_address6= -o smtp_address_preference=ipv4

ここで、各証明書を対応するIPにバインドするには、次のようにします。

1.1.1.1- unix - n n - - smtp -o smtp_bind_address=1.1.1.1 -o smtp_bind_address6= -o smtp_address_preference=ipv4

2.2.2.2- unix - n n - - smtp -o smtp_bind_address=2.2.2.2 -o smtp_bind_address6= -o smtp_address_preference=ipv4

3.3.3.3- unix - n n - - smtp -o smtp_bind_address=3.3.3.3 -o smtp_bind_address6= -o smtp_address_preference=ipv4

4.4.4.4- unix - n n - - smtp -o smtp_bind_address=4.4.4.4 -o smtp_bind_address6= -o smtp_address_preference=ipv4

5.5.5.5- unix - n n - - smtp -o smtp_bind_address=5.5.5.5 -o smtp_bind_address6= -o smtp_address_preference=ipv4

#smtp inet n - n - - smtpd
#smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes
#submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions=

1.1.1.1:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert1.pem -o smtpd_tls_key_file=/etc/postfix/cert1.pem
1.1.1.1:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert1.pem -o smtpd_tls_key_file=/etc/postfix/cert1.pem
1.1.1.1:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert1.pem -o smtpd_tls_key_file=/etc/postfix/cert1.pem

2.2.2.2:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert2.pem -o smtpd_tls_key_file=/etc/postfix/cert2.pem
2.2.2.2:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert2.pem -o smtpd_tls_key_file=/etc/postfix/cert2.pem
2.2.2.2:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert2.pem -o smtpd_tls_key_file=/etc/postfix/cert2.pem

3.3.3.3:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert3.pem -o smtpd_tls_key_file=/etc/postfix/cert3.pem
3.3.3.3:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert3.pem -o smtpd_tls_key_file=/etc/postfix/cert3.pem
3.3.3.3:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert3.pem -o smtpd_tls_key_file=/etc/postfix/cert3.pem

4.4.4.4:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert4.pem -o smtpd_tls_key_file=/etc/postfix/cert4.pem
4.4.4.4:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert4.pem -o smtpd_tls_key_file=/etc/postfix/cert4.pem
4.4.4.4:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert4.pem -o smtpd_tls_key_file=/etc/postfix/cert4.pem

5.5.5.5:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert5.pem -o smtpd_tls_key_file=/etc/postfix/cert5.pem
5.5.5.5:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert5.pem -o smtpd_tls_key_file=/etc/postfix/cert5.pem
5.5.5.5:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert5.pem -o smtpd_tls_key_file=/etc/postfix/cert5.pem

それでおしまい!! (上記のように元の行をコメントアウトすることを忘れないでください)

PS:courier-imapを使用している場合にPOP/IMAPでも同じことを行うには、それらの.pemファイルのコピーを/ usr/share/courier-imap /(またはPleskの場合)に配置するだけです、それらを/ usr/share /に配置し、次のように名前を付けます:imapd.pem.xx.xx.xx.xx pop3d.pem.xx.xx.xx.xx

ここで、xx.xx.xx.xxはそれぞれのIPアドレスです(2つの証明書は同じファイルのコピーです)。

お役に立てれば!

19
Peter