IIS6.0テスト用SSLの手早い設定方法

Windows専用のWebサーバIIS (Internet Information Service) 6.0で、社内ネットワークでのテスト用にSSL通信を有効にしたいと思い、インターネット上をいろいろ検索していたが簡単な方法が見つからない。

社外に公開するWebサーバなら、ベリサイン社などの認証機関に有償で認証してもらったサーバ証明書をIISにインポートするのだが、社内で単なるテスト用にSSLを有効にしたいだけなので、手っ取り早くサーバ証明書に自分で署名して認証してIISにインポートしたい。
Windows用のOpenSSLを利用する方法など試してみたが失敗。WebサーバとしてApacheを使っているテスト機では、本番機用に認証機関から有償で認証してもらったサーバ証明書を単純にファイルコピーしてssl.confを適切に記述するだけでSSLを有効にできたのに、IIS 6.0では既存の証明書を「mmc」からインポート処理しても有効にならない。
最終的に見つけたのは IIS 6 Resource Kit に含まれる SelfSSL.exe というコマンドだ。これが実に簡単なので検索エンジンに引っかかるようにここに記しておく。
まず、Googleなどで「IIS Resource Kit」をキーワードに検索すると、マイクロソフト社のIIS 6.0 Resource Kitダウンロードサイトが見つかる。ダウンロードするファイルの名称は iis60rkt.exe で容量は約5.8MBある。
これをテスト用にSSLを有効にしたいIISサーバにダウンロードしてダブルクリックで実行する。インストーラーのメッセージ(すべて英語だが難しくはない)にしたがってインストールを完了させる。Windowsの再起動の必要はない。
インストールが完了すると、「SelfSSL」ツールがプログラムメニューに登録される。「スタート」→「プログラム」→「IIS Resources」→「SelfSSL」→「SelfSSL」とクリックすると、コマンドプロンプト画面でSelfSSLのヘルプが表示される。
次に、IISマネージャを開いて、画面左半分のツリー表示の部分から「Webサイト」というフォルダをクリックし、SSL通信を有効にしたいWebサイトの識別子を調べる。「既定のWebサイト」の識別子は必ず「1」になっているが、自分で追加したWebサイトの識別子は10桁くらいの整数値になっているはずだ。この整数値をメモしておく。
次に、さきほどのコマンドプロンプト画面から
SelfSSL /S:(識別子の数字) /V:(証明書の有効期間日数)
と入力してEnterキーを押す。証明書の有効期間日数は、単なる閉じたネットワーク内でのテスト用であれば、36500日(100年!)くらいにしておいてもいいのではないか。続いて確認メッセージが表示されるので「Y」を入力する。
何とこれだけで所定のWebサイトでSSL通信が可能になるのだ。ただしIISマネージャ上でそのWebサイトのプロパティを開き、「Webサイト」タブの「SSLポート」欄に「443」というポート番号を入力して「適用」ボタンをクリックするのを忘れないよう。
SelfSSLというコマンドには、他にもいくつかオプションがあるので、きめ細かい設定がしたい方は「スタート」→「プログラム」→「IIS Resources」→「SelfSSL」→「SelfSSL」とクリックして表示される英文のヘルプを熟読されるとよい。単にテスト用に使うだけなら、上述の「/S:」と「/V:」の2つのオプションで十分と思われる。