セキュリティ保護された ASP.NET アプリケーションの構築 : 認証、認定、および通信のセキュリティ保護 Web サーバー上で SSL を設定する方法
J.D. Meier, Alex Mackman, Michael Dunner, and Srinath Vasireddy
Microsoft Corporation
November 2002
日本語版最終更新日 2003 年 3 月 17 日
Microsoft® ASP.NET
Microsoft Windows® 2000
全体の概要については、「セキュリティ保護された ASP.NET アプリケーションの構築」の開始ページを参照してください。
要約 : Web サーバーでクライアント アプリケーションからの https 接続をサポートするには、Web サーバーを SSL 対応として構成する必要があります。ここでは、Web サーバー上で SSL を構成する方法を述べます。
目次
p>SSL (Secure Sockets Layer) は、認証、機密性、およびデータ整合性を提供する暗号化技術です。SSL は、Web ブラウザと Web サーバーの間で、セキュリティ保護された通信チャネルを作成する場合によく使われます。クライアント アプリケーションと Web サービスの間でも使用されます。
必要条件
ハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、スキル、知識、サービス パックの要件は、以下のとおりです。
- Microsoft® Windows® 2000 Server オペレーティング システム (Service Pack 2)
- Microsoft 証明書サービス (独自の証明書を生成する場合に必要)
このドキュメントに示す手順では、IIS の構成に関する知識があるユーザーを想定しています。
要約
ここでは、次の手順について説明します。
- 証明書要求を生成する。
- 証明書要求を提出する。
- 証明書を発行する。
- Web サーバーに証明書をインストールする。
- SSL アクセスを要求するようにリソースを構成する。
1. 証明書要求を生成する
この手順では、新しい証明書要求を作成します。作成した要求は、証明機関 (CA) に送信して処理させることができます。CA が要求を処理できれば、有効な証明書を格納したファイルが CA から送信されます。
■ 証明書要求を生成するには
IIS MMC スナップインを起動します。
Web サーバー名を展開し、証明書をインストールする Web サイトを選択します。
その Web サイトを右クリックし、[プロパティ] をクリックします。
[ディレクトリ セキュリティ] タブをクリックします。
[セキュリティ保護された通信] の [サーバー証明書] をクリックして、サーバー証明書ウィザードを起動します。
メモ Web サイトではなく、仮想ディレクトリ、ディレクトリ、またはファイルを選択した場合は、[サーバー証明書] が表示されません。その場合は、手順 2. に戻って、Web サイトを選択してください。
[ようこそ] ダイアログ ボックスが表示されたら [次へ] をクリックします。
[証明書の新規作成] をクリックして、[次へ] をクリックします。
以下の 2 つのオプションを提供するダイアログ ボックスが表示されます。
[証明書の要求を作成して後で送信する]
このオプションは、常に選択可能です。
[オンライン証明機関に直ちに要求を送信する]
このオプションが選択可能になるのは、Windows 2000 ドメイン内の Web サーバー証明書を発行するように構成された 1 つまたは複数の Microsoft 証明書サーバーに Web サーバーからアクセスできる場合だけです。この後の要求プロセスで、要求の送信先となる証明期間を一覧から選択することができます。
[証明書の要求を作成して後で送信する] をクリックし、[次へ] をクリックします。
証明書の名前を [名前] ボックスに入力し、キーのビット長を [ビット長] ボックスに入力して、[次へ] をクリックします。
このウィザードでは、現在の Web サイトの名前が既定の名前として使用されます。これは、証明書の中で使用される名前ではなく、管理者が証明書を識別しやすくするための名前です。
組織名 (Contoso など) を [組織] ボックスに入力し、組織単位 (Sales Department など) を [部門] ボックスに入力して、[次へ] をクリックします。
メモ この情報は、証明書要求にそのまま使用されるので、情報が正確であることを確認してください。CA では、この情報が確認され、証明書に格納されます。Web サイトを参照しているユーザーが証明書を受け入れるかどうかを決定するときには、この情報がユーザーに対して表示されることになります。
サイトの一般名を [一般名] ボックスに入力し、[次へ] をクリックします。
重要 一般名は、証明書内に格納される情報のうち、最も重要なものの 1 つです。この名前は、Web サイトの DNS 名 (つまり、ユーザーがサイトにアクセスするときに入力する名前) です。証明書名がサイト名に一致していないと、ユーザーがサイトにアクセスすると、証明書に関する問題が表示されてしまいます。
サイトが Web 上にあり、仮に www.contoso.com という名前であれば、共通名として www.contoso.com を指定します。
サイトが内部ネットワーク上にあり、ユーザーがサイトにアクセスするときにコンピュータ名を使用するのであれば、コンピュータの NetBIOS 名または DNS 名を入力します。
[国/地域]、[都道府県]、[市町村] の各ボックスに適切な情報を入力し、[次へ] をクリックします。
証明書要求のファイル名を入力します。
ファイルには、以下のような情報が格納されます。
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIDZjCCAs8CAQAwgYoxNjA0BgNVBAMTLW1penJvY2tsYXB0b3Aubm9ydGhhbWVy…
-----END NEW CERTIFICATE REQUEST-----
これは、証明書要求の Base 64 エンコード表現です。要求には、ウィザードを通じて入力した情報のほかに、公開キーが格納され、秘密キーで署名された情報が格納されます。
この要求ファイルは、CA に送信されます。CA は、証明書要求に格納されてる公開キー情報を使用して、秘密キーで署名された情報を確認し、さらに、要求と共に渡された情報を確認します。
CA に要求を提出した後、ファイルに格納された証明書が CA から送信されます。その時点で、サーバー証明書ウィザードをもう一度実行します。
[次へ] をクリックします。証明書要求に格納される情報の要約が表示されます。
[次へ] をクリックし、[完了] をクリックして要求プロセスを完了します。
以上で、証明書要求を CA に送信して確認および処理させる準備が出来ました。CA から証明書を受け取った後、Web サーバーに証明書をインストールすることになりますが、このときにも IIS 証明書ウィザードを使用します。
2. 証明書要求を提出する
この手順では、前の手順で生成した証明書要求を提出します。要求の提出には、 Microsoft 証明書サービスを使用します。
■ 証明書要求を提出するには
- 前の手順で生成した証明書要求ファイルを [メモ帳] で開き、その内容をクリップボードにコピーします。
- Internet Explorer を起動し、http://hostname/CertSrv に移動します。ここで、hostname は、Microsoft 証明書サービスを実行しているコンピュータの名前を表します。
- [証明書の要求] をクリックして、[次へ] をクリックします。
- [要求する証明書の選択] ページで、[要求の詳細設定] をクリックし、[次へ] をクリックします。
- [証明書の要求の詳細設定] ページで、[Base 64 エンコード PKCS #10 ファイルを使用して証明書の要求を送信するか、または Base 64 エンコード PKCS #7 ファイルを使用して更新の要求を送信します。] をクリックし、[次へ] をクリックします。
- [保存した要求の送信] ページで、[Base 64 エンコード 証明書の要求 (PKCS #10 または #7)] テキスト ボックスの内側をクリックし、Ctrl キーを押しながら V キーを押して、クリップボードにコピーされている証明書要求を貼り付けます。
- [送信] をクリックします。
- Internet Explorer を閉じます。
3. 証明書を発行する
■ 証明書を発行するには
- [管理ツール] プログラム グループから [証明機関] ツールを起動します。
- 目的の証明機関を展開し、[保留中の証明書] フォルダを選択します。
- 前の手順で提出した証明書要求を選択します。
- [操作] メニューの [すべてのタスク] をポイントし、[発行] をクリックします。
- 証明書が [発行された証明書] フォルダ内に表示されていることを確認し、証明書をダブルクリックして内容を表示します。
- [詳細] タブで、[ファイルにコピー] をクリックし、証明書を Base 64 エンコード X.509 証明書として保存します。
- 証明書のプロパティ ウィンドウを閉じます。
- [証明機関] ツールを閉じます。
4. Web サーバーに証明書をインストールする
この手順では、前の手順で発行した証明書を Web サーバーにインストールします。
■ Web サーバーに証明書をインストールするには
インターネット インフォメーション サービスを起動します (まだ実行されていない場合)。
サーバー名を展開し、証明書をインストールする Web サイトを選択します。
その Web サイトを右クリックし、[プロパティ] をクリックします。
[ディレクトリ セキュリティ] タブをクリックします。
[サーバー証明書] をクリックして、サーバー証明書ウィザードを起動します。
[保留中の要求を処理し、証明書をインストールします] をクリックし、[次へ] をクリックします。
CA から発行された証明書が格納されているファイルのパスとファイル名を入力し、[次へ] をクリックします。
証明書の概要をチェックした後、[次へ] をクリックし、[完了] をクリックします。
以上の手順で、証明書が Web サーバーにインストールされます。
5. SSL アクセスを要求するようにリソースを構成する
この手順では、インターネット サービス マネージャを使って、SSL アクセスを要求するように仮想ディレクトリを構成します。SSL の使用を必須とする対象として、特定のファイル、ディレクトリ、または仮想ディレクトリを指定できます。このように指定したリソースにクライアントがアクセスするには、HTTPS プロトコルを使用する必要があります。
■ SSL アクセスを要求するようにリソースを構成するには
インターネット インフォメーション サービスを起動します (まだ実行されていない場合)。
サーバー名と Web サイトを展開します。この Web サイトは、証明書をインストールした Web サイトであることが必要です。
仮想ディレクトリを右クリックし、[プロパティ] をクリックします。
[ディレクトリ セキュリティ] タブをクリックします。
[セキュリティ保護された通信] の [編集] をクリックします。
[保護されたチャンネル(SSL)を要求する] をクリックします。
これにより、クライアントがこの仮想ディレクトリにアクセスするには、HTTPS の使用が必須になりました。
[OK] を 2 回クリックして、プロパティ ダイアログ ボックスを閉じます。
インターネット インフォメーション サービスを終了します。