[SMTP over SSL] Postfixでの設定
メールサーバや、FTPサーバ、Webサーバが同一筐体の場合、ワイルドカードをご利用いただくことで、1枚の証明書で運用することが可能です。詳しくはこちらをご覧ください。
マニュアルの手順にて動作検証をおこなっておりますが、メールサーバの動作を保証するものではございません。また、証明書の設定部分のみの解説となっておりますので、サーバ構築方法やアプリケーションの詳細については付属のドキュメントや関連書籍等でご確認ください。
Postfixはオープンソースのアプリケーションです。脆弱性などの問題がないか、随時情報を確認いただき、万一問題が発見された場合は、該当サービスの停止や、対応パッチがリリースされている場合は速やかに適用するなど、運用には十分ご注意ください。
※本例では以下環境を前提としています。
各ファイル名やパスは、お客様の環境に合わせて任意に読み替えてご覧ください。
SMTPサーバ | Postfix2.2 |
コモンネーム | mail.kingssl.com |
証明書保存ディレクトリ | /usr/share/ssl/certs/ |
秘密鍵保存ディレクトリ | /usr/share/ssl/private/ |
秘密鍵ファイル名 | mail.kingssl.com.key |
CSRファイル名 | mail.kingssl.com.csr |
証明書ファイル名 | mail.kingssl.com.cert |
中間証明書ファイル名 | cacert.crt |
お申込みの準備
秘密鍵と、お申し込み画面に貼り付けるCSRを生成します。
秘密鍵の生成
作業ディレクトリに移動します。
cd /usr/share/ssl/private/
秘密鍵を生成します。
openssl genrsa -out mail.kingssl.com.key 2048
CSRの作成
openssl req -new -key mail.kingssl.com.key -out mail.kingssl.com.csr
※ 半角英数文字 および半角スペース[ ]、ハイフン[-]、ドット[.]、アンダースコア[_]、カンマ[,]、プラス[+]、
スラッシュ[/]、かっこ[(]、閉じかっこ[)]がご利用可能です。
※ ワイルドカードオプションをご利用の場合は、Common Nameにアスタリスク[*]を含めてください。例: *.kingssl.com
フィールド | 説明 | 例 |
---|---|---|
Country Name | 国を示す2文字のISO略語です。 | JP |
State or Province Name | 組織が置かれている都道府県です。 | KANAGAWA |
Locality Name | 組織が置かれている市区町村です。 | Kamakura |
Organization Name | 組織の名称です。 | KingSsl |
Organization Unit Name | 組織での部署名です。 ※指定がない場合は - (ハイフン)を入力してください。 |
Sales |
Common Name | ウェブサーバのFQDNです。 | mail.kingssl.com |
Email Addres | 入力不要です。 | - |
A challenge password | 入力不要です。 | - |
An optional company name | 入力不要です。 | - |
生成されたCSR(req.pem)を、お申し込みの際にフォームに貼り付けてください。
[-----BEGIN CERTIFICATE REQUEST-----] から[-----END CERTIFICATE REQUEST-----] までをコピーペーストして下さい。
証明書のインストール。
証明書が発行されますと、サーバ証明書が契約者宛てにメールで届きます。
証明書の保存
メール本文中の「◆証明書」の部分 [-----BEGIN CERTIFICATE-----] から[-----END CERTIFICATE-----]
までをコピーし、サーバに保存します。
/usr/share/ssl/certs/mail.kingssl.cert
中間証明書の保存
メール中の「◆中間証明書」をコピーしてサーバに保存します。
中間証明書は、リポジトリのページからも取得できます。
/usr/share/ssl/certs/cacert.crt
証明書ファイルの結合
お客様の証明書(mail.kingssl.com.cert)と、中間証明書(cacert.crt)を、
1つのファイルに結合します。
cat cacert.crt >> mail.kingssl.com.cert
設定ファイルの編集
/etc/postfix/main.cf を開き、SSLに関する設定を追加します。
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /usr/share/ssl/certs/mail.kingssl.com.cert
smtpd_tls_key_file = /usr/share/ssl/private/mail.kingssl.com.key
smtpd_tls_loglevel = 1
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache
smtpd_tls_received_header = yes
tls_random_source = dev:/dev/urandom
/etc/postfix/master.cfを開き、以下行がコメントアウトされている(行頭に#がついている)
場合は解除します。
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
tlsmgr unix - - n 1000? 1 tlsmgr
※Fedora Core 3 の場合「tlsmgr fifo - - n 300 1 tlsmgr」と表記されるなど、環境によって表記が
異なる場合があります。
サービスの起動
Postfixを再起動します。
/etc/rc.d/init.d/postfix restart
以上で設定完了となります。メールクライアントに設定してご確認ください。
OpenSSLのs_clientオプションを利用することにより、SSL通信途中の証明書のやり取りを確認することが可能です。
参考:Apacheで証明書のインストール時に、鍵が合わないとのエラーになります。