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

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

矢嶋 聡
2003/06/04
Page1 Page2 Page3

 今度は証明書を作成します。ここで、[管理ツール]メニューから[証明機関]を選び、証明書サービスの管理ツールを開きます。その左ペインのツリーを展開し、「保留中の要求」フォルダを選択します。すると、右ペインには、いま申請したばかりの要求があります(図16)。

図16 管理ツール[証明機関]に表示された保留中の要求

 右ペインに表示された「要求」の行を右クリックして、ショートカット・メニューから[すべてのタスク]−[発行]を選びます。これで、証明書が作成されました。発行が完了すると、左ペインツリーの「発行した証明書」フォルダにこの情報が移動します。

 ここで、証明書を取り寄せます。以下のアドレスにもう一度アクセスして、図15「証明機関のWEB登録サポート」ページを再び開きます。

http://localhost/CertSrv/

 今度は、この画面から「保留中の証明書の確認」オプションを選び、[次へ]ボタンをクリックします。すると、作成された証明書の一覧が表示されます(図17)。

[NOTICE]

 ここでは、しばらく経過してからアクセスしないと、作成された証明書の一覧(図17)は表示されないかもしれません。もし表示されない場合、しばらく待ってからアクセスしてください。または管理ツール[証明機関]から該当する証明書を開いてファイル保存することもできます。この場合、左ペインツリーの「発行した証明書」フォルダを選択、右ペインで該当する[証明書]をダブルクリックし、開いてください。[証明書]ダイアログボックスが開くので、[詳細設定]タブを選び、さらに画面下の[ファイルにコピー]ボタンをクリックします(詳しくは、オンライン・ヘルプを参照してください)。

 
図17 作成された証明書

 後は、[次へ]ボタンをクリックすると、次画面に「CA証明書のダウンロード」リンクがあるので、既定の設定のままで、このリンクをクリックして、適当な名前を付けて、証明書をダウンロードしてください。ここでは、説明の都合上、名前は MySite1.cer にします。これでサーバ証明書ができました。

 ただし、今回はローカルな証明機関といえる「証明書サービス」によって作成させたので、この証明書が有効であるかどうかクライアントが確認するために、クライアント側にも、この証明書サービスの公開鍵が必要です。ここで、証明書サービス自身の公開鍵の証明書も取得しておきましょう。

 もう一度、図15「証明機関のWEB登録サポート」ページを開き、今度は「CA証明書または証明書失効リストの取得」オプションを選び、[次へ]ボタンをクリックします。CA証明書のダウンロードのリンクを持つ画面が開きます(図18)。このリンクをクリックして、証明書サービス自身の証明書をダウンロードします。保存するファイル名は任意ですが、説明の都合上、ここではMyRoot.cerにします。

図18 CA証明書のダウンロード

 これで以下の2つのファイルができました。

  • MySite01.cer:サーバ証明書(サーバで使用)
  • MyRoot.cer:証明書サービス自身の証明書(クライアントで使用)

■サーバ証明書をインストールする

 今度は、WebSrv1があるIISのWebサイトに、サーバ証明書MySite01.cerをインストールします。

 ここで、サンプルWebSrv1を含むIISマシン上で、管理ツール「インターネット・インフォメーション・サービス」を再び起動してください。管理ツールの左ペインのツリーで、「既定のWebサイト」を右クリックして、ショートカット・メニューから[プロパティ]を選んでください。[既定のWebサイトのプロパティ]ダイアログボックスが開いたら、[ディレクトリセキュリティ]タブをクリックします(図12「既定のWebサイトのプロパティ」参照)。

 ここで、再び[サーバ証明書]ボタンをクリックします。もう一度、サーバ証明書ウィザード(図13「サーバ証明書ウィザード」と同様)が起動するので、今回は[次へ]ボタンをクリックしながら、次の設定を行ってください。

(保留中の証明書の要求)
  ・「保留中の要求を処理し、証明書をインストールする」オプションを選択する
 
(保留中の要求を処理)
  ・「パスとファイル名」欄に、前の作業で作成したサーバ証明書「MySite01.cer」を指定する
 
 以降は、[次へ]ボタンをクリックし、画面を進める

 これでサーバ証明書をIISにインストールできました。なお、インストールされたサーバ証明書の内容を確認するには、[既定のWebサイトのプロパティ]ダイアログボックスの[ディレクトリセキュリティ]タブの下部にある、[証明書の表示]ボタンをクリックします(図12「既定のWebサイトのプロパティ」参照)。すると、証明書の内容を表すダイアログボックスが表示されます(この手順どおりに行った場合、発行先がIISのサーバ名、発行元が証明書サービス側の証明機関名になっているはずです)。

■アクセスをSSLのみに制限する

 前述までの手順で、IISでは通常のHTTPとSSLとの両方が利用可能になっています。今回は、WebSrv1だけはSSLを強制することにします。ここで、管理ツール[インターネットインフォメーションサービス]の左ペインツリーで、WebSrv1を右クリックして、ショートカット・メニューから[プロパティ]を選び、[ディレクトリセキュリティ]タブをクリックしてください(図19)。

図19 WebSrv1のセキュリティ関連のプロパティ

 この画面の下部にある「セキュリティ保護された通信」グループ内の[編集]ボタンをクリックします。[セキュリティ保護された通信]ダイアログボックスが開くので、上部の「保護されたチャンネル(SSL)を要求する」チェック・ボックスをチェックします(図20)。

図20 SSLのみを使用する

 この後、WebSrv1配下のサブフォルダに、この設定を反映させるか問う[継承/優先]ダイアログボックスが表示されるかもしれませんが、このダイアログは[OK]ボタンをクリックして閉じます。そのほか表示される画面は、[OK]ボタンをクリックしてすべて閉じます。

 以上で、サーバ側の設定は終わりました。これ以降、WebSrv1にアクセスするには、SSLを利用する必要があります。つまり、URLは「https://」で始めなければなりません。

 次回の第4回「SSLを利用した暗号化(クライアント編)」では、SSLで必要なクライアント側の設定を確認し、いよいよSSLを使って接続します。End of Article

VB.NETによる XML Webサービス開発

  本記事は@ITハイブックスシリーズ「VB.NETによる XML Webサービス開発」(インプレス)から、一部の内容を編集し転載したものです。本書の詳細は「@ITハイブックス」サイトでご覧いただけます。
 

 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 記事ランキング

本日 月間