自己証明書作成例

下記の自己証明書は、正式な証明機関で署名・発行された証明書を使わずに SSL/TLS 通信を行う場合に作成するものです。
既に正式な証明機関で署名・発行された証明書がある場合は、そちらをご利用下さい。

署名を行う際の説明に SHA1 での説明が行われておりますが、SHA1 には脆弱性が見つかっていますので、SHA256 での署名を推奨します。

自己証明書作成

取りあえず SSL/TLS 通信を行いたい場合は、自己証明書を作成して利用することができます。
自己証明書は証明機関で認証されていませんので、メーラーによっては証明書が正しくないというエラーが出ます。
エラーを出したくない場合は、メーラー側で例外処理をするか、正式な証明機関で署名・発行された証明書が必要になります。

証明書の作成には OpenSSL を利用します。(2011/02/01 最新版は、OpenSSL 1.0.0 です。下記は 1.0.0 を標準インストールした状態での説明となります。)
OpenSSL は、http://www.openssl.org/からダウンロードできます。

  1. OpenSSL のインストールを行います。下記の例でのインストールフォルダは C:\OpenSSL-Win32\ になります。

  2. 秘密鍵の作成。


    コマンドプロンプトを起動し、OpenSSL をインストールしたフォルダに移動して、下記を入力します。

    openssl genrsa -des3 -out example.com.key 1024
    パスフレーズの問い合わせがありますので2回(入力/確認)同じパスフレーズを入力します。
    このパスフレーズは、証明書のインストールの際にも必要になりますので、忘れないようにしてください。
    正しくパスフレーズを入力しますと、同一フォルダに出力ファイルで指定された秘密鍵のファイルが作成されます。
    トリプルDES以外の指定もできますが、SSLv3/TLS 通信ではトリプルDES以上を指定する必要があります。

  3. パスフレーズの解除。


    openssl rsa -in example.com.key -out example.com.key2
    パスフレーズの問い合わせがありますのでパスフレーズを入力します。
    証明書の確認の際にパスフレーズを入力する必要がありますが、サーバーで毎回確認の為の入力を行うことはできませんので、解除(埋め込み)を行います。
    ここでは、exampel.com.key2 と別ファイルに出力していますが、example.com.key と同じファイルに上書きすることもできます。

  4. 証明書の作成。


    openssl req -new -key example.com.key2 -out example.com.csr
    対話式で必要な情報を入力します。
    FQDN は PMailServer2 のインストールの際に証明書を区別する際に利用されますのでご注意下さい。
    また上記の内容はサンプルですので、ご利用の環境に合わせて必要な項目を入力して下さい。

  5. 証明書に署名を行う。


    openssl x509 -req -days 365 -sha1 -in example.com.csr -signkey example.com.key2 -out example.com.crt
    上記で作成したファイルを使って署名を行った証明書を作成します。
    -days 365 で有効期限が1年になります。必要に応じて有効期限を調節して下さい。
    上記の説明ではハッシュアルゴリズムに -sha1 を利用していますが、SHA1 は脆弱性が見つかっている為、-sha256 (SHA256) の指定を推奨します。

  6. PFX(PKCS#12) 形式に変換する。


    openssl pkcs12 -export -in example.com.crt -inkey example.com.key2 -out example.com.p12
    Windows は標準で PFX(PKCS#12) 形式でのインストールに対応しています。
    (PFX(PKCS#12)形式は、秘密鍵や証明書をセットで保存することができる形式です。)