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


21

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

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

Postfix smtpd_tls_cert_file設定オプションに必要なSSL証明書はどれですか?

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

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

回答:


10

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

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

Postfixがクライアントがリクエストしたホスト名を知る方法はありません。Host要求されたドメインを示すHTTP / 1.1 ヘッダーなど、PostfixはまだSNIをサポートしていません。

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


19

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

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

postfixで行う方法は次のとおりです。

最初に各ドメインの証明書を/ etc / postfix /ディレクトリに配置します(/ etc / postfix / ssl /ディレクトリを作成することもできます)注:.pem証明書ファイルを使用するPleskを使用しますが、使用することもできます.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つの証明書は同じファイルのコピーです)

お役に立てれば!


このような詳細な回答をお寄せいただきありがとうございます!これは将来誰かを助けると確信しています。
nimrodm

2
それが希望です!これは、この一緒にピースに私にしばらく時間がかかったし、解決策を見つけることは稀だった実際に ...誰かがこのまたはそのかもしれない作業をsurmisingのではなく、働いていたが
ピーター

1
これで、letsencryptを使用して最初の方法を実行できます。マルチドメイン証明書を無料で使用できます
18
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.