メールサーバー間の SMTP 通信を暗号化する

Posted on
Postfix SMTP SSL TLS メール

メールサーバー間の通信で、TLSを使った暗号化が可能なのは知っていたが、面倒なので放置していた。

が、Gmail などで暗号化通信で送られてきたメールにはその旨記載があったり、世の中も動いてきてるので、今回、対応することにした。

Debian の場合

apt install ca-certificates

で、CA証明書を導入しておくことを忘れない。

/etc/postfix/main.cf に以下の行を挿入。

smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_security_level = may
smtp_tls_loglevel = 1

FreeBSD の場合

pkg install ca_root_nss

で、CA証明書を導入しておくことを忘れない。

/usr/local/etc/postfix/main.cf に以下の行を挿入。

smtp_tls_CAfile = /usr/local/etc/ssl/cert.pem
smtp_tls_security_level = may
smtp_tls_loglevel = 1

これで、送信時に暗号化通信を行える相手には、暗号化して送信し、そうでない相手には平文で送信するようになる。

共通

次に受信時の暗号化通信だが、メールのヘッダに暗号通信の記録を残すことを含め、main.cf へ次の行を挿入。

smtpd_use_tls=yes
smtpd_tls_received_header = yes

無論、SSL 証明書を Let’s Encrypt などから取得して、設定しておくことを忘れない。

以上で対応は終了だった。簡単すぎて拍子抜け。もっと早くに対応しておくべきだった。