WWWサーバの構築(Windows Vista編)
[ Apache2.2+OpenSSL ]


Windows Vista環境でApacheを動かしてみました。基本は他のWindows編に順じますが、VistaのUACの関係で若干手こずったので、ここに整理 しておきます。
インストールしたのは、Apache2.2.6で、SSL、PHP対応としました。 ここではSSL対応について述べますが、CGIを動かすためのPerl のインストールに関してはこ ちらを、PHPに関してはこちらを参照願います。

■Apache+SSL for Win32のインストール

従来、ApacheのサイトにあるファイルはSSLに対応していませんでしたが、最近はSSL対応のオールインワン のバイナリがありますので、これを使うことにしました。おやじがダウンロードしたのは、 apache_2.2.6-win32-x86-openssl-0.9.8e.msi (2008.01.01現在)です。なお、Windows Vista 環境ではダ ウンロードしたファイルをそのままダブルクリックしてインストールしようとするといろいろ問題がでるので、以下のように管理者権限でインストールします。

  1. Apache の本家に行き、画面左のプロジェクト一覧から HTTP Server を選択すると Apache のページに行くので、画面左の Download!  from a mirror をクリックするとミラーサイトに飛ぶ。そこで、中段にある2.2系の最新版のアナウンスのところに各ソースファイルへの案内があるが、ここでは Windows用のバイナリファイルが必要なので、その下にある Other files をクリックすると配布ファイル一覧が出てくるので、そこで更に binaries/ -> win32 (KDDIへのリンク)フォルダを選択すると、バイナリファイルがあるので、最新のSSL対応版を適当な場所にダウンロードする。
    SSL 対応版は、 apache_2.2.6-win32-x86-openssl-0.9.8e.msi のように opensslの表記があるものであり、SSL非対応版は no_ssl となっているので誤ってダウンロードしないこと。

  2. 「ス タート」->「すべてのプログラム」->「アクセサリ」でメニューを開き、「コマンドプロンプト」の上で右クリックし、「管 理者として実行」を選択する。

  3. 「ユーザーアカウント制御」の警告が 出るので、「続行」を クリックする。
  4. コマンドプロンプトで下記にようにダウンロードしたmsiバイナリを指定し てインストールする。下記は、 D:\work にダウンロードした場合の例である。

    C:\Windows\system32>msiexec.exe /i D:\work\apache_2.2.6-win32-x86-openssl-0.9.8e.msi

  5. イ ンストールウィザード の画面が開くので、「Next」をクリックする。

    インストールウィザード画面

  6. ラ イセンス認証画面が開くので内容を確認し、「I accept the team ・・・」を選択して「Next」をクリックする。

    ライセンス認証

  7. Apache を動作させる前の諸条件が表示されるので内容を確認し、「Next」をクリックする。

    はじめに


  8. サー バを動かす条件(ドメイン名、サーバ名、管理者のメールアドレス)を入力し、「Next」をクリックする。後で、 httpd.conf を修正すればよいので、ここでは仮入力でもよいし、何も入力しなくてもよい。

    Apacheのサーバ情報


  9. イ ンストール方法の選択画面が表示されるので、「Typical」から「Custom」に変更し、「Next」をクリックする。これは、デフォルトでは 「C:\Program Files」配下にインストールされ、いろいろな問題(「Program Files」のようにフォルダ名に空白があるとエラーになるケースがある。パスが深くなり扱いにくいし、制限が出ることがある等)が発生しやすくなるの で、Cドライブ直下にインストールしたほうがよいためである。

    インストール方法の選択


  10. イ ンストールする機能とパスの選択画面が開くので、「Change...」をクリックしてインストールパスを変更する。

    インストール機能とパスの変更


  11. 下 段の Folder name で、インストールするフォルダ名を変更し、「OK」をクリックする。おやじはデフォルトの前部分を削除して、「C:\Apache2.2\」とした。 インストールフォルダは自動で作成されるので、あらかじめ作成しておく必要はない。

    インストールパスの変更


  12. 指 定した内容に誤りがなければ、「Next」をクリックする。

    インストール条件の確認


  13. イ ンストールを開始するため、「Install」をクリックする。

    インストール開始


  14. イ ンストールが完了したら、「Finish」をクリックする。

    インストール完了


  15. イ ンストールが完了すると、右下に「Windows Defender により変更が検出されました」というメッセージが表示されるので、Windows Defenderアイコンをクリックし、Windows Defenderを開く。
    Windows Defenderでは、下記のように確認すべき内容のガイダンスがあるので、「確認して操作を実行する」をクリックする。

    変更内容一覧


  16. Apache のサービス登録に関する確認内容が表示されるので、内容と操作が「許可」になっていることを確認して、右下の「操作を適用する」をクリックする。

    Windows Defenderが検出した変更内容の確認


  17. 変 更確認画面が表示されるので、内容を確認し画面を閉じる。

    変更内容の確認


  18. イ ンストールが完了するとタスクトレイに ApacheMonitor のアイコンが表示されるが、Start/Stop等の制御ができない場合がある。その場合は、「C:\Apache2.2\bin\ ApacheMonitor.exe」のプロパティを開き(エクスプローラ等でファイルの上で右クリックして、プロパティを開く)、「互換性」タブを選択 して「特権レベル」の「管理者としてこのプログラムを実行する」にチェックを入れて、「OK」をクリックする。

    特権レベルの変更


  19. 以 上で、インストールは完了し、Apacheはサービス起動されているので、ブラウザで「http://localhost/」にアクセスしてみる。
    い たってそっけない「It works!」という画面が表示されるはずである。これが出ないことには先に進めないので、チェックしておくこと。

■Apache+SSL for Win32の設定

Apache+SSL for Win32を動かすため、httpd.confやhttpd-ssl.confの設定及びSSLの鍵や証明書の準備を行います。SSL用証明書等の作成に ついては、こちらを 参考に 必要なものを作成してください。

◆基本的な設定(httpd.confの設 定)

設 定情報は、Apacheディレクトリ中のconfディレクトリにあるhttpd.confにあるので、テキストエディタで編集し ていきます。Apache2.0系とは異なり、httpd.confでは基本的な設定のみ行うようになっており、その他はextraディレクトリ内にある httpd-xxx.confをhttpd.confからIncludeする方式になっているので2.0から2.2へのバージョンアップには注意が必要で す。
設定を変更した項目は以下のとおりです。変更する場合は、失敗に備えて変更行を下の行にコピーし、元の行の先頭に「」 を付加することにより、コメント行として保存しながら作業しました。 設定をいじくりすぎてどうにもならなくなったら、conf/default フォルダ内にデフォルトのhttpd.confやhttpd-ssl.confなどがあるので、これらをコピーすれば初期状態に戻るので、頭を整理し ながらやり直したほうが早い場合もあります。(青字は 削除、赤字は追加、緑字は変更したものです。)

◆ユーザ毎に動かすための設定 (extra/httpd-userdir.confの設定)

おやじだけでなく、あっこやリナもホームページを作るため、以下のようなディレクトリ構成で、プロバイダと同じように”http: //www.aconus.com/~oyaji/といった形式でアクセスできるようにしてみました。ルート(http: //www.aconus.com/)は将来使うこととして、空けてあります。



   C:\apache2.2\home [ ルートディレクトリ ]
                    |
                   ├ oyaji [ おやじのユーザディレクトリ ]
                   | ├ index.htm [トップページ ]
                   | ├ bbs     [ CGI設置用 ]
                   | └ count [ CGI設置用 ]
                   |
                   ├ akirin [ あっこのユーザディレクトリ ]
                   | ├ index.html [トップページ ]
                   | └ cgi [ CGI設置用 ]
                   |
                   └ rina [ リナのユーザディレクトリ ]
                   ├ index.html [トップページ ]
                   └ keijiban [ CGI設置用 ]
    



◆デフォルト設定の変更 (extra/httpd-default.confの設定)

ここでは、Apacheのデフォルト設定の変更を行いますが、基本は、デフォルトのまま httpd.conf で無効でよいと思います。おやじは、ホスト名でログを取りたいため有効にしました。但し、この httpd-default.conf 設定を有効にすると、ServerToken(Headerにもあるがエラー時に表示されるサーバ情報)がFullになっており、全ての情報が表示されて しまうので、ここはセキュリティ上変更したほうがよいでしょう。


◆SSL を動かすための設定 (httpd.conf, extra/httpd-ssl.confの設定)

  1. まずは、こちらで作成したサーバ用の鍵 (newkey.pem) と証明書 (server.crt) を、Apacheのconfディレクトリ配下にコピーする。このとき、デフォルト設定で動作するよう newkey.pem をserver.keyにリネームする。

    C:\>cd C:\etc
    C:\etc>copy newkey.pem C:\Apache2.2\conf\server.key

    C:\etc>copy server.crt C:\Apache2.2\conf\

  2. SSLモジュールの組み込み

    SSLを動かすため、DSOでSSLモジュールを組み込むよう httpd.conf で指定する。(行頭の「#」を削除)

    #LoadModule ssl_module modules/mod_ssl.so

           ↓削除

    LoadModule ssl_module modules/mod_ssl.so

  3. httpd-ssl.conf 設定の有効化

    httpd-ssl.conf設定を有効にするため、 httpd.conf でのIncludeを有効にする。

    # Secure (SSL/TLS) connections
    #Include conf/extra/httpd-ssl.conf

           ↓削除

    # Secure (SSL/TLS) connections
    Include conf/extra/httpd-ssl.conf

  4. httpd-ssl.conf の設定を行う。


◆クライア ント認証を動かすための設定

クライアント認証関係の設定は、単 に通信を暗号化(httpsでのアクセス)するだけなら不要です。
このクライアント用証明書によるクライアント認証を導入すると、予め認証局で署名されたクライアント用証 明書を持たない端末がアクセスしても、 接続そのものが拒否されるのでセキュリティ的にかなり強固になります。反面、クライアント毎に証明書を発行することになるので、運用はかなり面倒になりま すが、セキュリティとのバータなので止むを得ません。
このようなクライアント認証は、一般的に企業などで導入されており、具体例としてはwebを使用して外勤 の営業マンが社外から社内システムにア クセスできるシステムや株取引のシステムなどに導入されています。このようなシステムの場合、不特定多数にアクセスされるとApacheの認証やアプリ認 証だけではセキュリティが甘くなるため、アクセスレベルでセキュリティを強化するためにクライアント認証を導入します。

  1. 作成したCA用証明書を、Apacheのディレクトリ配下に コピーする。

    C:\etc>copy demoCA\cacert.pem C:\Apache2.2\conf

  2. 証明書失効リス トを、Apacheのディレクトリ配下にコピーする。

    C:\etc>copy demoCA\crl\crl.pem C:\Apache2.2\conf

    なお、失効が発生するたびにこの作業は必要になるので、 ssl.confでcrl.pem作成ディレクトリを直接指定したほうが良いかもしれない。 Windowsの場合は、リストを有効にするためApacheの再起動が必要である。

  3. ssl.conf の設定を行う。

◆サービス起動の設定と起動

Windows版Apacheには、サービスの起動制御をGUIで行える 「ApacheMonitor.exe」が準備されている。Windows XPまでは、Apacheをインストールしたbinディレクトリにある 「ApacheMonitor.exe」 スタートアップに登録しておくとシステム起動時にタスクトレイに常駐できたのですが、Windows VistaではUACの関係で警告が出るので煩わしく、この方法がとれません。
常時起動させておく必要も ないので、Vistaではショートカットを作成してタスクバーにでも放り込んでおくとよいでしょう。


 Perl のインストール  PHPのインストール

Top Pageへ