FreeBSDでPostfixのTLSを有効にしたい場合、以下の様にします。
FreeBSDの場合はルート証明書が標準では入っていないのでca_root_nssをportsかpkgでインストールする。(SSL系のportsをインストールすると一緒に入ることが多い)
# cd /usr/ports/security/ca_root_nss/ && make install clean 若しくは # pkg install security/ca_root_nss
/usr/local/share/certs/ca-root-nss.crtがルート証明書。
ApacheでSSL (その勘所)で作成したserver.crtとca.crtを結合したserverchain.crtを作成する。
% cat server.crt ca.crt > serverchain.crt
DH keyを作成する。1024 or 2048 bitで。下の例は2048bit。
# openssl openssl dhparam -out /usr/local/etc/postfix/dhparams.pem 2048
SSLv2とSSLv3は脆弱性の問題から使用しないものとする。
/usr/local/etc/postfix/main.cfの例 (Postfix2.6以降用のつもり)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | smtp_starttls_timeout = 300s
smtp_tls_CAfile = /usr/local/share/certs/ca-root-nss.crt
smtp_tls_block_early_mail_reply = no
smtp_tls_cert_file = /usr/local/etc/postfix/serverchain.crt
smtp_tls_ciphers = export
smtp_tls_enforce_peername = yes
smtp_tls_force_insecure_host_tlsa_lookup = no
smtp_tls_key_file = /usr/local/etc/postfix/server.key
smtp_tls_loglevel = 1
smtp_tls_mandatory_ciphers = medium
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
smtp_tls_note_starttls_offer = yes
smtp_tls_protocols = TLSv1.2, TLSv1.1, TLSv1
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:/var/run/smtp_tls_session_cache
smtp_tls_session_cache_timeout = 3600s
smtp_use_tls = yes
smtpd_starttls_timeout = 300s
smtpd_tls_CAfile = /usr/local/share/certs/ca-root-nss.crt
smtpd_tls_ask_ccert = yes
smtpd_tls_cert_file = /usr/local/etc/postfix/serverchain.crt
smtpd_tls_ciphers = high
smtpd_tls_dkey_file = $smtpd_tls_dcert_file
smtpd_tls_key_file = /usr/local/etc/postfix/server.key
smtpd_tls_loglevel = 1
smtpd_tls_mandatory_ciphers = medium
smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3
smtpd_tls_protocols = TLSv1.2, TLSv1.1, TLSv1
smtpd_tls_dh1024_param_file = /usr/local/etc/postfix/dhparams.pem
#smtpd_tls_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDC3-SHA, KRB5-DE5, CBC3-SHA #この行の使用をお薦め
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:/var/run/smtpd_tls_session_cache
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = no
|
ごめんなさい。smtpd_tls_mandatory_protocolsとsmtpd_tls_protocols、smtp_tls_mandatory_protocolsとsmtp_tls_protocolsの違いがよく解っていません。
設定が完了したらpostfixを再起動しCheckTLS.comでフォームにpostfixのサーバが管理しているメールアドレスの1つを入力し[Try It]ボタンを押す。暫く待つとTLSのテスト結果が表示される。

画像の様に全ての項目がOKにならなければなりません。
さらにCheckTLS.comのTestSenderのページに従い自分のpostfixサーバからCheckTLS.comにメールを送信し、帰ってきたメールを確認する。少なくともメールの題名が「CheckTLS TestSender SUCCESSFUL」なら問題ないかと。
CheckTLS.comは他にも幾つか有用なテストが行えるのでオススメ。