[SMTP over SSL] Postfix

最終更新:2024年11月29日

メールサーバや、FTPサーバ、Webサーバが同一ドメインの場合、ワイルドカードオプションをご利用いただくことで、1枚の証明書で運用することが可能です。詳しくはこちらをご覧ください。

マニュアルの手順にて動作検証をおこなっておりますが、メールサーバの動作を保証するものではございません。また、証明書の設定部分のみの解説となっておりますので、サーバ構築方法やアプリケーションの詳細については付属のドキュメントや関連書籍等でご確認ください。

Postfixはオープンソースのアプリケーションです。脆弱性などの問題がないか、随時情報を確認いただき、万一問題が発見された場合は、該当サービスの停止や、対応パッチがリリースされている場合は速やかに適用するなど、運用には十分ご注意ください。

本例では以下環境を前提としています。各ファイル名は、お客様の環境に合わせて任意に読み替えてご覧ください。

SMTPサーバ Postfix2.2
コモンネーム mail.globalsign.com
証明書保存ディレクトリ /usr/share/ssl/certs/
秘密鍵保存ディレクトリ /usr/share/ssl/private/
秘密鍵ファイル名 mail.globalsign.com.key
CSRファイル名 mail.globalsign.com.csr
証明書ファイル名 mail.globalsign.com.cert
中間証明書ファイル名 cacert.crt
  1. お申し込みの準備
    秘密鍵と、お申し込み画面に貼り付けるCSRを生成します。

    1.秘密鍵の生成

    作業ディレクトリに移動します。

    cd /usr/share/ssl/private/

    秘密鍵を生成します。

    openssl genrsa -out mail.globalsign.com.key 2048

    2.CSRの作成

    openssl req -new -key mail.globalsign.com.key -out mail.globalsign.com.csr

    ※Common Nameは、半角英数文字 および ハイフン[-]、ドット[.]が利用可能です。
    ※Common Name、Country Name以外は、半角英数文字と半角スペース、および 半角記号 !#%&'()*+,-./:;=?@[]^_`{|}~がご利用可能です。
    ※ワイルドカードオプションをご利用の場合は、アスタリスク[*]を含めてください。例: *.globalsign.com

    フィールド 説明
    Country Name 国を示す2文字のISO略語です。 JP
    State or Province Name 組織が置かれている都道府県です。 Tokyo
    Locality Name 組織が置かれている市区町村です。 Shibuya-ku
    Organization Name 組織の名称です。 GlobalSign
    Organization Unit Name 組織での部署名です。
    ※指定がない場合は - (ハイフン)を入力してください。
    Sales
    Common Name メールサーバのFQDNです。 mail.globalsign.com
    Email Addres 入力不要です。 -
    A challenge password 入力不要です。 -
    An optional company name 入力不要です。 -

    生成されたCSR(mail.globalsign.com.csr)を、お申し込みの際にフォームに 貼り付けてください。

  2. 証明書のインストール
    証明書が発行されますと、サーバ証明書が契約者宛てにメールで届きます。

    1.証明書の保存
    「◆証明書」の部分 [-----BEGIN CERTIFICATE-----] から[-----END CERTIFICATE-----] までをコピーし、サーバに保存します。

    /usr/share/ssl/certs/mail.globalsign.com.cert

    2.中間証明書の保存
    メール中の「◆中間証明書」をコピーしてサーバに保存します。

    /usr/share/ssl/certs/cacert.crt

    3.証明書ファイルの結合
    お客様の証明書(mail.globalsign.com.cert)と、中間証明書(cacert.crt)を、1つのファイルに結合します。

    cat cacert.crt >> mail.globalsign.com.cert
  3. 設定ファイルの編集
    /etc/postfix/main.cf を開き、SSLに関する設定を追加します。

    smtpd_use_tls = yes
    smtpd_tls_auth_only = yes
    smtpd_tls_cert_file = /usr/share/ssl/certs/mail.globalsign.com.cert
    smtpd_tls_key_file = /usr/share/ssl/private/mail.globalsign.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」と表記されるなど、環境によって表記が異なる場合があります。

  4. サービスの再起動
    Postfixを再起動します。

     /etc/rc.d/init.d/postfix restart

以上で設定完了となります。メールクライアントに設定してご確認ください。

補足

OpenSSLのs_clientオプションを利用することにより、SSL通信途中の証明書のやり取りを確認することが可能です。

サーバに設定されている証明書をopensslコマンドで確認したい