連載 XML Webサービスのセキュリティ実装

第3回 SSLを利用した暗号化(サーバ編)

矢嶋 聡
2003/06/04
Page1 Page2 Page3

3-2 サーバ証明書の準備

 本項では、IISでSSLを使用するために、サーバ側の公開鍵の証明書を作成する方法を説明します。3-1「SSLとは?」で説明したように、SSLの手順としてサーバ側の公開鍵を確実にクライアントに渡すためには、サーバ側の公開鍵を含む証明書を作成する必要があります。この証明書を「サーバ証明書」といいます。ここでは、サーバ証明書の作成を外部の証明機関に要求するのではなく、Windows 2000 Serverなどで提供される「証明書サービス」を証明機関として利用します。それを踏まえ、以降ではWebSrv1をSSLでアクセスできるようにする手順を説明します。

■サーバ証明書の要求ファイルを作成する

 まず、証明機関に証明書を作成してもらうための元データとなる、「証明書要求ファイル」を作成します。このファイルはテキスト・ファイルで、サーバ側の公開鍵がエンコードされて含まれています。

 ここで、サンプルWebSrv1を含むIISマシン上で、管理ツール「インターネット・インフォメーション・サービス」を起動してください([スタート]メニューの[プログラム]−[管理ツール]−[インターネット・インフォメーション・サービス]から起動します)。管理ツールの左ペインのツリーでは「WebSrv1」ではなく、「既定のWebサイト」を右クリックして、ショートカット・メニューから[プロパティ]を選んでください。[既定のWebサイトのプロパティ]ダイアログボックスが開いたら、[ディレクトリセキュリティ]タブをクリックします(図12)。サーバ証明書の作成に関する処理は、仮想フォルダ単位ではなく、サイト単位で行うので、「既定のWebサイト」を右クリックした点に注意してください。

図12 既定のWebサイトのプロパティ

 この画面の下部にある[サーバー証明書]ボタンをクリックします。すると、「サーバー証明書ウィザード」が開きます(図13)。

図13 サーバー証明書ウィザード

 この後は、このウィザードの指示に従って操作します。[次へ]ボタンをクリックしながら、以下に示す設定を各ページで行い、証明書要求の際の元データとなるテキスト・ファイル「証明書要求ファイル」を作成してください。以下の丸かっこ表記は、ウィザードの各ページにある小見出しです。また、特に指定がないオプションは既定のままにしてください。

(サーバ証明書)
  ・「証明書の新規作成」オプションを選択する
 
(要求の送信)
  ・「証明書の要求を作成して後で送信する」オプションを選択する
 
(名前とセキュリティの設定)
  ・名前欄は覚えやすい任意の名前
 
(組織に関する情報)
  ・組織、部門とも覚えやすい任意の名前
 
(サイトの一般名)
  ・一般名: サーバの名前に合わせること(以下の「NOTICE」を参照)
 
(地理情報)
  ・国、都道府県、市区町村を任意の名前で入力
 
(証明書要求ファイル名)
  ・ファイル名: 任意の名前(ここでは説明の都合上、MySite01.txt)
   
[NOTICE]

 「一般名」はサーバ名に合わせてください。実際にSSLを使うとき、サーバ証明書は、クライアントにダウンロードされ、その際、ダウンロード元のサーバ名と証明書の一般名が一致しないと、Internet Explorerは警告を発します。

 これで、証明機関に証明書の作成を要求するための、サーバ側の公開鍵を含む「証明書要求ファイル」ができました。なお、この操作によってIISの内部には、サーバ側の秘密鍵も作成されています。つまり、前述の一連の操作によって、サーバ側には秘密鍵と公開鍵が作られ、さらに公開鍵を含む「証明書要求ファイル」が作られたわけです。

 この後の手順として、この「証明書要求ファイル」を証明機関に提出して、証明書を発行してもらうわけですが、今回はWindows 2000の「証明書サービス」に証明書の発行を依頼します。

■証明機関でサーバ証明書を作成してもらう

 ここでの証明書作成の作業は、Windows 2000 Server上の「証明書サービス」を利用します。実験的に使用できるWindows 2000 Serverに証明書サービスをインストールするか、またはすでにインストール済みの、実験で利用してもよいスタンドアロンの証明書サービス(企業内のアクティブディレクトリに組み込まれていない証明書サービス)を利用すればよいでしょう。

 Windows 2000で証明書サービスをインストールするには、ほかのコンポーネントと同様に、コントロール・パネルの「アプリケーションの追加の削除」の中にある「Windowsコンポーネントの追加と削除」をクリックして表示される画面「Windowsコンポーネントウィザード」から行うことができます。この画面から「証明書サービス」選択して、[次へ]ボタンをクリックし、インストールしてください(図14)。

図14 証明書サービスのインストール

 インストールする場合、証明書サービスの既定のオプションのままインストールすれば十分です。インストールの途中で、「証明機関の種類」を選択する必要がありますが、今回は実験なので「スタンドアロンのルートCA」を選択してください。また、「CA識別情報」の入力欄には適当な名前や住所を入力してください。

 証明書サービスのインストールが済んだら、次の手順でこの証明書サービスに「証明書要求ファイル」を提出します。

 ここで、証明書サービスがインストールされたマシンでブラウザを起動し、次のアドレスにアクセスしてください。このアドレスにアクセスするには、もちろん、そのマシンでIISが稼働している必要があります。

http://localhost/CertSrv/

 すると、図15のようなWebページが開きます。これは、認証サービスにアクセスするWebページ形式のツールです。「WEB登録サポート」と呼ばれる機能です(このページが開かない場合、証明書サービスのサブコンポーネント「証明書サービスWEB登録サポート」をインストールしていない可能性があり、再度インストールする必要があります。図14の画面で「証明書サービス」を選択した後、[詳細]ボタンをクリックして「証明書サービスWEB登録サポート」を選択し、再インストールしてください)。

図15 証明機関のWEB登録サポート

 この画面はウィザード形式になっており、[次へ]ボタンをクリックしながら設定していきます。各ページでは以下の手順に従って設定し、先に作成した「証明書要求ファイル」をページに貼り付けて、証明書サービスへ投函してください。

(ようこそ)
  ・「証明書の要求」オプションを選択する
 
(要求する種類の選択)
  ・「要求の詳細設定」オプションを選択する
 
(証明書の要求の詳細設定)
  ・「Base 64エンコードPKCS #10ファイルを使用して証明書の要求を送信...」オプションを選択する
 
(保存した要求の送信)
  ・「保存された要求」欄に、先に作成した「証明書要求ファイル(MySite01.txt)」の内容全体をコピー・ペーストして貼り付ける(データの前後にあるBEGIN、およびENDを含む開始行と終了行は含まなくともよい)
   
  ・送信ボタンをクリックする

 これで、証明機関(証明書サービス)に証明書発行の要求は済みました。


 INDEX
  連載 XML Webサービスのセキュリティ実装
  第3回 SSLを利用した暗号化(サーバ編)
    3-1 SSLとは?
  3-2 サーバ証明書の準備(1)
    3-2 サーバ証明書の準備(2)
 
インデックス・ページヘ  「連載 XML Webサービスのセキュリティ実装」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間