DovecotでSSLの設定はできたので、今度はPostfixでの設定をしてみる。
以前の記事: Dovecot v2.x SSLの設定
証明書関連のファイルの名前は次の通りとする。
- 証明書: example.com.crt
- 認証鍵: example.com.key
- 中間証明書: example.com.ca-bundle
main.cfにSSL(TLS)関連の設定を追加しておく。
/etc/postfix/main.cf
smtpd_tls_security_level = may smtpd_tls_cert_file = /etc/pki/tls/certs/example.com.crt smtpd_tls_key_file = /etc/pki/tls/certs/example.com.key smtpd_tls_CAfile = /etc/pki/tls/certs/example.com.ca-bundle smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
smtps(465番)ポートでの認証を受けるためにmaster.cfを編集する。すでにsmtpsの記述はされているのでコメントをはずすだけで良い。milterは使ってないので最後の行はコメントアウトのままにしておいた。
/etc/postfix/master.cf
smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING
あとはPostfixをリロードして設定を反映する。
/etc/init.d/postfix reload
smtpd_use_tls = yesでSSLを有効にしている記事を良くみかけたけど、マニュアルの翻訳サイトによるとPostfix 2.3移行はsmtpd_tls_security_levelが新しい設定なのでこちらを採用した。
デフォルトではPostfix SMTPサーバのTLSは無効になっており、見た目にはそのままの Postfixと違いはありません。明示的に “smtpd_tls_security_level = may” (Postfix 2.3以降) or “smtpd_use_tls = yes” (古いですがまだサポートされています) を使って有効にしてください。
原文でも確認したところ、すでにsmtpd_use_tlsの記述はなくなっていた。
Postfix TLSサポート: Postfix 2.3 ドキュメント
Thunderbird+ワイルドカードSSL証明書の組み合わせで試したが、STARTSSLでも465番ポートでのメール送信でも特に問題はなかった。
参考記事: メールサーバー間通信内容暗号化(OpenSSL+Postfix+Dovecot) – CentOSで自宅サーバー構築