postfix/dovecotでTLS SNI

dovecot

この機能を使うにあたってはクライアント側も対応が必要だった。

dovecot

dovecotの設定変更。

10-ssl.conf

試してみるとわかるが、「ssl_cert = <」と「ssl_key = <」の行は消してはいけない。

local_name example.net {
  ssl_cert = </etc/letsencrypt/live/example.net/fullchain.pem
  ssl_key = </etc/letsencrypt/live/example.net/privkey.pem
}

local_name example.com {
  ssl_cert = </etc/letsencrypt/live/example.com/fullchain.pem
  ssl_key = </etc/letsencrypt/live/example.com/privkey.pem
}

postfix

公式ページのtls_server_sni_mapsを参考に。

main.cf

以下のように指定する。(以下の最初の二つも必要なようだ)

smtpd_tls_cert_file = /etc/letsencrypt/live/example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/example.com/privkey.pem

tls_server_sni_maps = hash:/etc/postfix/sni

/etc/postfix/sni

公式ページによると、

    # The example.com domain has both an RSA and ECDSA certificate
    # chain.  The chain files MUST start with the private key,
    # with the certificate chain next, starting with the leaf
    # (server) certificate, and then the issuer certificates.

とのことなので、以下のように指定する。

example.net             /etc/letsencrypt/live/example.net/privkey.pem,
                        /etc/letsencrypt/live/example.net/fullchain.pem
example.com             /etc/letsencrypt/live/example.com/privkey.pem,
                        /etc/letsencrypt/live/example.com/fullchain.pem

このファイルの更新時は、postmap に-Fオプションが必要である。と公式ページに記載あり。

postmap -F /etc/postfix/sni

また、証明書が更新されたらpostmapコマンドを実行する必要がある。

コメント

タイトルとURLをコピーしました