HOME -> ソフトウェア -> Apache -> Apache -5 SSL適用

Apache -5 SSL適用

 暗号化通信のためにはSSL契約を行いますが、ベリサインでは「試用セキュアサーバーID」の発行が受けられますので、これを利用して無料でSSL化の手順を確認してみます。
 SSLについてはapacheインストーラーバイナリの選択においてnossl とopenssl対応タイプがある(apache2.2系)ので、 apacheインストーラーをダウンロードする際にopensslと表記のあるタイプをダウンロードしておいてインストールしたものと仮定して進めます。

 次にOpenSSLをインストールしますが、 基本OpenSSLはソース公開なのでWindowsの場合はビルトしなければならず敷居が高くなってしまいます。 そこで有志がビルトしたバージョンがあるのでそちらを利用します。
 ダウンロードページへ
ダウンロードを終えたらダブルクリックでインストールを行います。 cpuが64bit系か32bit系かでファイルが分かれますので注意が必要です。 もし、64bit系であれば頭がwin64というものをダウンロードすることになります。 インストーラー起動時にコマンドプロンプトが起動していると警告アラートが表示されるので閉じておきましょう。 インストール中に何か聞かれることがあればまずOKを押してあげれば大丈夫です。

 インストールが終わったら、インストール中に聞かれたインストール先パスにOpenSLLがインストールされているか確認します。 エクスプローラーからフォルダを確認すればすぐわかるでしょう。 特に設定を変えなかった場合は「C:\OpenSSL」のフォルダ内にインストールされているはずです。 確認まで終えたら次は秘密鍵とCSRを発行する手順に移ります。 まずは擬似乱数を発生させてそこから秘密鍵を作成します。
 秘密鍵の作成にはコマンドラインからopenssl.exeを利用しますが、これはopensslフォルダ内のbinの中にopenssl.exeがありますので、 まずそこまで移動します。
 デフォルトままであれば以下のコマンドとなります。
 cd c:\openssl\bin
 次に以下のコマンドを入力します。
 openssl md5 * > rand.dat
 これによりopenssl\binフォルダ内に rand.dat が作成されました。 この.datファイルの実態は乱数を収めたただのテキストファイルですので、上記コマンドで指定するファイル名はrand.datでなくてももちろんかまいません。 次にこの乱数ファイルを利用して秘密鍵を作成します。
 openssl genrsa -rand 作成した乱数ファイル -des3 2048 > 2009key.pem
 作成した乱数ファイルはここではrand.datとなります。そして作成した秘密鍵のファイルが2009key.pemとなります。 もちろん秘密鍵のファイル名は任意でかまいません。 また、このコマンドの後に Enter pass phrase と、確認も含めて2回パスフレーズを入力するよう求められます。 この入力したパスフレーズは忘れないようにしてください。
 次にこの秘密鍵からCSRを作成します。
 openssl req -new 作成した秘密鍵 -out 2009csr.pem
 先ほど作成した2009key.pemを利用してCSRファイル 2009csr.pem(任意のファイル名)を作成します。 秘密鍵を作成するときに設定したパスフレーズを要求されるのでそれを入力します。 すると各種情報を入力するよう促されますので、国や住所、ドメイン等を入力してゆきます。 重要なのはドメインで、www.test.xxxとtest.xxxでは異なるドメインとして扱われますので、 どちらでアクセスさせたいのかをハッキリさせてから設定しましょう。 設定が終わったら 2009csr.pemという名のファイルが作成されます。 これがCSRキーとなります。

 更にもうひとつ、windowsの場合は秘密のパスフレーズを外してしまわないと起動できません(起動方法があるのか自分には判りませんでした)のでそのためのキーファイルも作成しておきます。
 openssl rsa -in 作成した秘密鍵 -out 2009server.key
 もちろん出力先のファイル名は自由です。 これにより2009server.keyというパスフレーズを外した秘密鍵ファイルができました。
 試用SSLの申請には上記で作成したCSRが必要となります。 申請フォームを記入するとCSRの提出が求められますので、テキストエディタ等でCSRファイルを開きます。 内容はテキストデータなのでメモ帳でもかまいません。 内容を全部コピーして貼り付けます。 提出内容が次の画面で確認表示されるので内容をチェックして、併せて担当者情報も入力してしまいます。 これでサーバIDが指定のメールアドレス宛てに発行されたので確認しましょう。
 次にサーバIDをサーバー側にインストールするのですが、その前にapache側に設定を行っておきます。 apacheのhttpd.confに以下の部分を見つけます。
 #LoadModule ssl_module modules/mod_ssl.so
 頭の#を取ってモジュールを有効にします。 また、SSLの各種設定を有効とするため
 #Include conf/extra/httpd-ssl.conf
 という部分の#も取っておきます。 次に、httpd-sslの初期設定を行います。 作成したキーファイルと証明書ファイルをサーバーにインストールします。
 SSLCertificateFile "C:/*****/Apache2.2/conf/server.crt"
 SSLCertificateKeyFile "C:/*****/Apache2.2/conf/server.key"
 上記の記載部分を探します。実際には上の2行の間には複数行が存在しますので注意。 また、*****の部分は任意のファイル名です。 crtの方がメールで受け取ったものです。ファイルを任意の名前をしてconfフォルダ内に設置します。 keyは最初にcsrと併せて作成したものですのですが、ここでは(Windowsでは) パスフレーズを外した鍵ファイルを利用します。これも任意名のファイルとしてconfフォルダ内に置きましょう。
 ここから更にレジストリをいじらなくてはなりません。 ファイル名を指定して実行より「regedit」を入力します。レジストリエディタが起動しますので
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Apache2.2\ImagePath
を探し出します。バージョンによりApache2.2は他の数字になることがあります。 ここの値のデータを右クリックして変更で
c:\パス\Apache.exe" -k runservice
から
c:\パス\Apache.exe" -D SSL -k runservice
と変えます。  これによりSSLモジュールが起動しますのでapacheを再起動しておきましょう。


2009年 5月 22日ドキュメント作成
2009年 5月 25日ドキュメント更新