[POP over SSL] Qpopper

最終更新:2024年11月29日

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

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

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

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

POPサーバ Qpopper 4.0.19
スーパーサーバ xinetd
SSLライブラリ(Openssl) /usr/share/ssl
コモンネーム pop.globalsign.com
証明書・鍵の保存ディレクトリ /etc/mail/certs
qpopper設定用証明書ファイル名
(秘密鍵・証明書が統合されたファイル)
cert.pem
CSRファイル名 req.pem
証明書ファイル名 server.crt
中間証明書ファイル名 cacert.crt
  1. お申し込みの準備
    秘密鍵と、お申し込み画面に貼り付けるCSRを生成します。

    1.Qpopper用の証明書を保存するディレクトリを作成します。

    mkdir -p -m 660 /etc/mail/certs

    2.ディレクトリの権限を設定します。

    chown root:mail /etc/mail/certs

    3.秘密鍵を作成します。

    openssl genrsa -out cert.pem 2048

    4.CSRファイルを作成します。

    openssl req -new -key cert.pem -out req.pem

    ※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です。 pop.globalsign.com
    Email Addres 入力不要です。 -
    A challenge password 入力不要です。 -
    An optional company name 入力不要です。 -

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

    5.秘密鍵のアクセス権の変更

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

    1.証明書をサーバに保存します。
    メール本文中の「◆証明書」、 [-----BEGIN CERTIFICATE-----] から [-----END CERTIFICATE-----] までをコピーしてください。

    /etc/mail/certs/server.crt

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

    /etc/mail/certs/cacert.crt

    3.証明書ファイルを統合します。
    qpopperでは1つのファイルに秘密鍵、証明書をまとめて設定します。お客様の証明書(server.crt)と中間証明書(cacert.crt)を、秘密鍵ファイル(cert.pem)に追記して使用します。

    証明書の書き込み
    cat server.crt >> cert.pem

    中間証明書の書き込み
    cat cacert.crt >> cert.pem
  3. Qpopperの設定
    POP orver SSLを使用する場合、QpopperがSSLに対応している必要があります。もしSSL対応のオプションをつけていない場合は、コンパイルしなおす必要があります。

    SSLのライブラリーにOpensslを使用する場合は、コンパイルオプションに以下をつけてqpopperをコンパイルします。

    --with-openssl=path 

    ※お客様が独自にオプションを設定されている場合は、そのオプションも合わせてご指定ください。

    例)
    # ./configure --with-openssl=/usr/share/ssl
    # make
    # make install
  4. Qpopper設定(qpopperr.config)ファイルの作成
    設定ファイルにて、QpopperのSSLサーポートの有効化と、キーペアファイルを指定します。

    設定ファイル保存用のディレクトリを作成します。

    mkdir /etc/mail/pop

    viコマンドで、configファイルを作成します。内容は、以下背景色のついている2行です。

    vi /etc/mail/pop/qpopper.config
    set tls-support = stls
    set tls-server-cert-file = /etc/mail/certs/cert.pem
  5. xinetdの設定
    pop3sの定義を作成します。

    xinetdを設定するディレクトリに移動します。

    cd /etc/xinetd.d/

    viコマンドでpop3sファイルを作成します。内容は、以下背景色をつけている9行です。

    vi pop3s
    Service pop3s
    {
    disable = no
    socket_type =stream
    wait = no
    user = root
    server = /usr/local/sbin/popper
    server_args = popper -s -f /etc/mail/pop/qpopper.config -l 2
    }

    ※server_argsに作成した、設定ファイルの指定とTSL、SSLを有効にする ”-l 2” のオプションを指定してください。

  6. servicesファイルの確認
    serviceファイルにpop3s のサービスと使用ポートが記載されている必要があります。 記載がない場合は、viなどのエディタで追記してください。

    servicesファイルの中身を確認します。

    cat /etc/services
    pop3s 995/tcp # POP-3 over SSL
    pop3s 995/udp # POP-3 over SSL

    上記記載があれば問題ありません。#以下はコメントなので記載しなくても結構です。

  7. サービスの再起動
    スーパーサーバプロセスxinetdの再起動を行います。

    /etc/init.d/xinetd restart

補足

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

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