web-dev-qa-db-ja.com

PostfixとDovecotで複数のドメインの証明書を設定する

メールサーバーを複数の証明書で処理できるようにするために、main.conf postfix構成ファイルと10-ssl.conf dovecot構成ファイルを設定する方法がわかりません。説明させてください...同じサーバーに2つのドメインがあるとします。

  • mail.example.it
  • mail.example.com

異なるフォルダーにある両方の2つの異なる証明書

  • etc/letsencrypt/live/mail.example.it
  • etc/letsencrypt/live/mail.example.com

問題は、postfix構成のmain.confでtlsパラメーターをどのように設定する必要があるかです。それは1つのエントリしかサポートしていないようです

  • smtpd_tls_cert_file
  • smtpd_tls_key_file

Dovecot構成の10-ssl.confでの同じ問題:サポートされるエントリは1つだけのようです

  • ssl_cert
  • ssl_key

助けてくれてありがとう

4
p0lo

私の知る限り、これは不可能です。次の2つのオプションがあります。

  • サーバーが処理する必要がある他のすべてのドメインのMXとして1つのドメインを使用します。したがって、example.com用に構成された証明書があり、example.orgのメールも処理する場合は、example.comサーバーを指すMXエントリをexample.orgゾーンに設定します。
  • 必要なすべてのドメインに対して、複数のSANで証明書を使用します。つまり、すべてのドメインをカバーする証明書ファイルが1つだけあります。
5
Sven

これは、TLSハンドシェイクの Server Name Indication(SNI) ヘッダーで暗号化されていないドメイン名を調べて、暗号化されたデータが交換される前に正しい証明書を選択することで行われます。現在(これが変更された場合はこの回答を編集します)、PostfixはSNIをサポートしていません。

更新:SNIサポートはpostfix 3.4.0で導入されました- http://www.postfix.org/announcements/postfix-3.4.0.html

一方、Dovecotはそうします。次の構成例を参照してください。

# Default
ssl_cert = </path/to/default/cert
ssl_key = </path/to/default/private/key

# mail.example.it
local_name mail.example.it {
    ssl_cert = </etc/letsencrypt/live/mail.example.it
    ssl_key = </path/to/mail.example.it/private/key
}

# mail.example.com
local_name mail.example.com {
    ssl_cert = </etc/letsencrypt/live/mail.example.com
    ssl_key = </path/to/mail.example.com/private/key
}

各ドメインのssl_keyデフォルトと同じ場合。

3
Billy