CentOS 8系から可能になった Postfix/DovecotメールサーバーのSSL/TLSをSNI対応。
(複数の証明書でマルチドメイン運用にする方法)
■ Dovecot TLS SNI対応
/etc/dovecot/conf.d/10-ssl.conf
# デフォルトの証明書(この記述も必要)
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
# 以下を追加していく
local_name domain1.org {
ssl_cert = </path/to/domain1_fullchain.crt
ssl_key = </path/to/domain1_praivate.key
}
local_name domain2.org {
ssl_cert = </path/to/domain2_fullchain.crt
ssl_key = </path/to/domain2_praivate.key
}
・・・local_name を追加していく
他は通常のTLSの設定と同じ
■ Postfix TLS SNI対応
/etc/postfix/main.cf
# デフォルトの証明書(この記述も必要)
smtpd_tls_cert_file = /etc/pki/tls/certs/postfix.pem
smtpd_tls_key_file = /etc/pki/tls/private/postfix.key
# Postfix 3.4以上なら SNI可能
tls_server_sni_maps = hash:/etc/postfix/tls_server_sni_maps
他は通常のTLSの設定と同じ
証明書のマップファイル
/etc/postfix/tls_server_sni_maps
domain1 /path/to/domain1_praivate.key, /path/to/domain1_fullchain.crt
domain2 /path/to/domain2_praivate.key, /path/to/domain2_fullchain.crt
・・・
postmap -F hash:/etc/postfix/tls_server_sni_maps
★重要
証明書を更新時に postmap -F でマップdbを作り直す必要がある。