Apache 2.2.9 & OpenSSL 0.9.8h

Apache 2.2.9 と OpenSSL 0.9.8h をインストール

Windows Vista で、Apache 2.2.9 & OpenSSL 0.9.8h をとりあえず動作させるための設定を備忘録として残したいと思います。

(この記事は、2008 年 6 月 28 日に作成したものです。)

1.インストール環境

Windows Vista は、Home Basic で SP1 が適用されています。

Apache HTTP Server は、http://www.apache.org/ から、apache_2.2.9-win32-x86-openssl-0.9.8h-r2.msi をダウンロードしてあります。

OpenSSL は、http://www.openssl.org/ から、Win32OpenSSL-0_9_8h.exe をダウンロードしてあります。OpenSSL では、Binary Distributions にて OpenSSL for Windows が提供されています。また、Microsoft Visual C++ 2008 Redistributable Package (x86) のリンクに従って、これも適用します。

apache_2.2.9-win32-x86-openssl-0.9.8h-r2.msi をインストールすると、openssl.exe も含まれるのですが、今回は、CA 証明書も作成しようと思いますので、OpenSSL for Windows もインストールすることにしました。

なお、CA 証明書の作成の際には、Perl プログラムを使用します。わたしのマシンには、ActivePerl 5.10.0.1003 のインストールおよび設定が済んでいます。

2.インストール

まず、ローカル環境( LAN 環境)でのドメイン名を設定しておくと、この先、やりやすい点がいくつかあると思われます。以前に BIND という DNS サーバを設定したことがあり、これを利用してもよいのですが、今回は簡単に、hosts ファイルに設定することにしました。また、localhost でも以前に試してみたことがあり、動作を確認したことがありますが、もう1台マシンがあれば、そちらからの接続も試したいと思うはずなので、ドメイン名を設定することにします。今回は、www.wa としています。

C:\Windows\System32\drivers\etc\hosts を編集しますが、Windows Vista では、管理者権限がないと変更できませんので、メモ帳などを管理者権限で起動する必要があります。

Apache HTTP Server のインストールです。インストーラの指示に従ってインストールを進めれば、動作する設定になります。ただ、Windows Vista で Program Files にインストールしてしまうと、httpd.conf などの編集をするのにも管理者権限が必要になりますので、いくつかの設定を変更しながら確認していきたい場合には、他のフォルダを作成してインストールしたほうがよさそうです。

OpenSSL のインストールもインストーラの指示に従って、進めればまず問題ありません。インストールの最後に donate のダイアログが表示されます。0.9.8g のときにはなかったものと記憶しています。よく読んで判断してください。

OpenSSL のインストール後の作業は、コマンドプロンプトで行いますので、システム環境変数 Path に 今回のOpenSSL のインストール先である C:\OpenSSL\bin を追加しておきます。

さらに、C:\OpenSSL\bin にある CA.pl の先頭行を #!c:/perl に修正します。

3.CA 証明書

openssl.cfg を編集します。ちなみに、0.9.8g では、openssl.cnf であったと思います。以下は、今回修正した箇所のみを書き出しました。

[ CA_default ]
unique_subject = yes
[ usr_cert ]
nsCertType = server
[ v3_ca ]
nsCertType = sslCA, emailCA

作業するフォルダを作成しておきます。 C:\OpenSSL-CA とします。

コマンドプロンプトを起動して、カレントディレクトリを C:\OpenSSL-CA に移動して、以下のようにプログラムを実行します。

CA.pl -newca

すると、いくつかの質問が表示されていきますので、順番に入力していきます。以下は、その入力の部分のみを書き出しました。

CA certificate filename (or enter to create) →[Enterキーのみ入力] 



Enter PEM pass phrase:→[パスフレーズを入力]
Verifying - Enter PEM pass phrase:→[パスフレーズを再入力]



Country Name (2 letter code) [AU]:→[国コード(JP)を入力]
State or Province Name (full name) [Some-State]:→[都道府県名(Tokyo)を入力]
Locality Name (eg, city)[]:→[市町村名(Edogawa)を入力]
Organization Name (eg, company)[Internet Widgits Pty Ltd]:→[会社名など(WA-CA)を入力]
Organization Unit Name (eg, section)[]:→[部署名など(Admin)を入力]
Common Name (eg, YOUR name)[]:→[通称など(OpenSSL-CA)を入力]
Email Address []:→[Email アドレスを入力]



A Challenge password []:→[Enterキーのみ入力]
An optional company name []:→[Enterキーのみ入力]



Enter pass phrase for ./demoCA/private/cakey.pem:→[パスフレーズを入力]


コマンドプロンプトで、以下のコマンドを実行します。

openssl x509 -in ./demoCA/cacert.pem -out ./demoCA/cacert.crt

デフォルトでは、有効期間が3年間となります。

4.Apache 用サーバ証明書

引き続き、コマンドプロンプトで、以下のようにプログラムを実行します。

CA.pl -newreq-nodes

また、いくつかの質問が表示されていきますので、順番に入力していきます。以下は、その入力の部分のみを書き出しました。




Country Name (2 letter code) [AU]:→[国コード(JP)を入力]
State or Province Name (full name) [Some-State]:→[都道府県名(Tokyo)を入力]
Locality Name (eg, city)[]:→[市町村名(Edogawa)を入力]
Organization Name (eg, company)[Internet Widgits Pty Ltd]:→[会社名など(wa)を入力]
Organization Unit Name (eg, section)[]:→[部署名など(Admin)を入力]
Common Name (eg, YOUR name)[]:→[ホスト名(www.wa)を入力]
Email Address []:→[Email アドレス(admin@www.wa)を入力]



A Challenge password []:→[Enterキーのみ入力]
An optional company name []:→[Enterキーのみ入力]


次に、以下のようにプログラムを実行します。

CA.pl -sign

いくつかの入力があります。以下は、その入力の部分のみを書き出しました。




Enter pass phrase for ./demoCA/private/cakey.pem:→[パスフレーズを入力]



Sign the certificate? [y/n]:→[yを入力]
1 out of 1 certificate requests certified, commit? [y/n]→[yを入力]

そして、server.crtserver.key を以下の2つのコマンドで作成します。

openssl x509 -in newcert.pem -out server.crt
openssl rsa -in newkey.pem -out server.key

server.crtserver.key は、Apache のconf フォルダにコピーします。ちなみに、それぞれのファイル名は、Apache の httpd-ssl.conf にデフォルト設定されているファイル名なので、 このファイル名にあわせて作成すれば、conf ファイルの変更がなくて済みます。

5.Apache の設定

httpd.conf の編集(コメントアウト)を行います。以下に変更箇所のみを書き出します。

LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf 

httpd.conf を保存して、Apache を再起動します。

ブラウザで URL に、https://www.wa/ と入力して接続ができれば、とりあえず OK ということになります。なお、IE では、証明書エラーとなりますが、続行することで確認できます。また、作成した CA 証明書をインポートすることによって、解消することもできます。

Advertising iseeit.jp Blog

affiliated with