postfix の SNI 設定
こんにちは ネットアシスト技術部です。
今回は postfix の sni 機能について紹介したいと思います
以下 postfix のサイトにもありますように postfix が sni を正式対応するようになっています。
http://www.postfix.org/TLS_README.html
The above client pre-requisites do not apply to the Postfix SMTP server. It will support DANE provided it supports TLSv1 and its TLSA records are published in a DNSSEC signed zone. To receive DANE secured mail for multiple domains, use the same hostname to add the server to each domain’s MX records. The Postfix SMTP server supports SNI (Postfix 3.4 and later), configured with tls_server_sni_maps.
バージョンが 3.4 以上である必要があります。
さっそくですが設定していきたいと思います。
sni 設定として必要な部分のみ記載しますので、その他の設定については環境に応じて設定してください。
main.cf
smtpd_tls_chain_files = /path/to/privkey.pem,
/path/to/fullchain.pem
smtpd_tls_security_level = may
tls_server_sni_maps = hash:/etc/postfix/sni_maps
- smtpd_tls_chain_files
デフォルトドメインの証明書設定です。 - smtpd_tls_security_level = may
利用を必須にするか、使える場合使うといった設定です。 - tls_server_sni_maps = hash:/etc/postfix/sni_maps
/etc/postfix/sni_maps のファイル名については任意で大丈夫です。
sni.map
domain /path/to/domain_praivate.key /path/to/domain_fullchain.pem
domain2 /path/to/domain2_praivate.key /path/to/domain2_fullchain.pem
設定する対象ドメインとの鍵と証明書のパスを列挙していきます。
設定が完了したら 以下のコマンドでDB化します。
postmap -F hash:/etc/postfix/sni_maps
その後 postfix を再起動してください。
再起動後、SSL証明書が正しく取得できるか確認しましょう。
openssl s_client -connect [IP]:25 -servername domain --starttls smtp
openssl s_client -connect [IP]:25 -servername domain2 --starttls smtp
問題がなければ完了です。
様子がおかしければ ログを調査してください。
今までは haproxy を利用しなければいけず、starttls が設定がうまくできなかったので、いろいろ楽になりました。
今回は以上になります。ありがとうございました。