03-6758-0529

(9:00〜17:00 土日祝日を除く)

SSL・EV SSL サーバー証明書 サポート

sendmailでのサーバー証明書のインストール方法

本ページに記載されているインストール方法は、基本的な構成を元にしています。
システム環境等の設定状況により、手順や画面表示が異なることがあります。
アプリケーションやツールなどの仕様や設定手順等でご不明な点がある場合は、それらのマニュアルをご確認いただくか、開発元にご連絡ください。

※この手順によって生じた影響や結果について、弊社では一切の責任は負いかねます。

sendmail でのサーバー証明書インストール手順

SSL サーバ証明書を準備する

  1. pem サーバー証明書ファイルを用意する

    必要なファイルはpem書式の秘密鍵、サーバ証明書、中間証明書です。
    一般にUnix系アプリケーションの証明書関係ファイルはデフォルトでpem書式になっています。
    秘密鍵はCSRを作成したときにできています。

    CSR作成時にパスフレーズを設定している場合は、秘密鍵のパスフレーズを解除するを参照し、パスフレーズ解除済みの秘密鍵を用意してください。
    pemファイル一般については.PEM 書式のSSLサーバ証明書を作るにも記載があります。
  2. pemサーバー証明書ファイルを保存するディレクトリを決める

    ここでは /etc/mail/certs としていますが、それ以外のディレクトリを指定することもできます。その場合は、一般ユーザーの書き込み権限のないディレクトリとします。

  3. 上で決めたディレクトリにpem書式の秘密鍵、サーバ証明書、中間証明書を保存

    ここでは秘密鍵のファイル名を【mail.example.com.key.pem】、サーバ証明書のファイル名を【mail.example.com.crt.pem】、中間証明書のファイル名を【cacert.pem】としていますが、拡張子も含め分かり易い任意の名前を指定できます。

    /etc/mail/certs/mail.example.com.key.pem
    /etc/mail/certs/mail.example.com.crt.pem
    /etc/mail/certs/cacert.pem
    ※秘密鍵ファイルは root ユーザー以外は閲覧できないようにしてください。
  4. 以下のコマンドを実行し、中間証明書へのハッシュリンクを作成
    # cd /etc/mail/certs
    # ln -s cacert.pem `openssl x509 -noout -hash < cacert.pem`.0
    

sendmail設定ファイルを変更する

【sendmail.cf】を直接編集することも可能ですが、ここでは、推奨方法である【sendmail.mc】を編集し、その後【sendmail.cf】に反映させる方法で説明します。

sendmailでTLSを利用する場合、二つの接続方法があります。一つはSTARTTLSと呼ばれる方法で、まずは通常の25番ポートやSubmission Port 587番ポートでサーバーに接続し、クライアントとサーバー双方がTLSに対応していることが確認された時点でTLS接続に切り替えるという方法です。
もう一つの方法はSTMPsプロトコルを使う方法です。この方法では最初から暗号化された接続になります。

  1. STARTTLSを有効にする

    STARTTLS を有効にするには、以下のようにサーバ証明書のディレクトリと名前を【sendmail.mc】で指定します。

    define(`CERT_DIR’,`/etc/mail/certs’)dnl
    define(`confCACERT_PATH’,`CERT_DIR’)dnl
    define(`confCACERT’,`CERT_DIR/cacert.pem’)dnl
    define(`confSERVER_CERT’,`CERT_DIR/mail.example.com.crt.pem’)dnl
    define(`confSERVER_KEY’,`CERT_DIR/mail.example.com.key.pem’)dnl
    define(`confCLIENT_CERT’,`CERT_DIR/mail.example.com.crt.pem’)dnl
    define(`confCLIENT_KEY’,`CERT_DIR/mail.example.com.key.pem’)dnl

    以下を追加することもできます。

    define(`confTLS_SRV_OPTIONS’, `V’)dnl
    define(`confAUTH_OPTIONS’, `A p y’)dnl

    define(`confTLS_SRV_OPTIONS’, `V’)dnl を設定した場合は、クライアント認証要求が無効になります。
    define(`confAUTH_OPTIONS’, `A p y’)dnl を設定するとSMTP認証の安全性が高まります。

  2. STMPsを使う場合

    STMPsを使う場合は上記に加えて、以下の指定を【sendmail.mc】に追加する必要があります。

    DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s’)dnl

    STMPsプロトコルを使う場合はサーバーの465番ポートが利用可能になっていることを確認してください。

  3. 以下のコマンドを実行し、【sendmail.mc】の変更を【sendmail.cf】に反映させます。

    # cd /etc/mail
    # m4 sendmail.mc > sendmail.cf
    
  4. 以下のようなコマンドを実行し、sendmail を再起動します。

    # /etc/init.d/sendmail stop
    # /etc/init.d/sendmail start
    

メールクライアントの設定

STMPsを使う設定を行っている場合

メールクライアントの指定で「このサーバーはセキュリティで保護された接続(SSL)が必要(Windows Live例)」のように指定すると、ポート番号465を指定してTLS/SSLを利用してメールを送信できます。この場合、通信は開始時から暗号化されます。

STMPsを使う設定を行っていない場合

メールクライアントの指定で「このサーバーはセキュリティで保護された接続(SSL)が必要(Windows Live例)」のように指定すると、ポート番号25,587を指定してTLS/SSLを利用してメールを送信できます。この場合、通信は暗号化されずに開始されますが、STARTTLSによって認証ID、パスワードを含むすべての通信が暗号化されます。

同一サーバー上で複数のホスト名のメールサービスを行っている場合

SMTPサーバー名に証明書のホスト名を指定すれば、すべてのホスト名でTLS/SSLを利用したメール送信ができます。
WildCard Plus、マルチドメイン証明書、EVマルチドメイン証明書の場合は、SMTPサーバー名にメールで使っているホスト名を指定することも可能です。

関連情報

Copyright © Sophia Research Institute,Ltd. All rights reserved.