DigiCert証明書の正規代理店株式会社アールエムエス
180か国以上・80,000以上の団体が利用
Loading
  1. ホーム
  2. サポート
  3. インストール方法
  4. sendmail

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

URLを変更しました。ブックマークの変更をお願いします

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

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、UCサーバ証明書、EVマルチドメイン証明書の場合は、SMTPサーバー名にメールで使っているホスト名を指定することも可能です。

関連情報

SSL サーバ証明書とは?
30日間テスト証明書
30日間返金保証制度あり!
コードサイニング証明書
ドキュメントサイニング証明書
デジタル証明書ニュース
digicert.comトピックス&ニュース