2012年5月6日日曜日

IISでのクライアント認証


WindowsServerにてCAを立ち上げ、それを利用してクライアント認証を行うとすると
1.クライアントにServerに要求を投げてもらう。
2.Serverで管理者が代理要求をして、秘密鍵をクライアントに配布する
の2パターンがあると思う。

1.だとクライアントに面倒な作業が入るし、
https://localhost/certsvr
の画面を公開しても良いのかという疑問と不安もある。
何よりあの画面はとっつきにくい。
その代わり、参考サイトが結構ある。

2.だと秘密鍵をどうやって、クライアントに渡すのか、
渡した秘密鍵が複製されないかなどといいた危険はあるが、
クライアントでの作業が少ないので、マニュアルの作成などが不要というメリットもある。
こちらだと参考となるサイトが見つからなかった。
なので覚書程度に、MSDNフォーラムでのやり取りをまとめてみた。
イメージとしては、シス担が証明書の要求・作成・配布をマニュアルで行なって
ユーザー(クライアント)には秘密鍵のインポートだけやってもらう感じ。

[テスト環境]
<WebServer>
・WinServer2008R2 Standard SP1 x64
IIS 7.5  自作サーバー証明書セット済み
Active Directory 証明書サービス追加済み
※クライアント認証が必要なWebサイトあり。

<クライアント>
・WinXP SP3 x86

1.Serverでがhttps://localhost/certsvr に接続してクライアント認証証明書を要求
  ★このとき、秘密キーをエクスポートできるようにして設定する。
2.Severの自作CAにて、保留中の要求を確認したら発行する。
3.発行後、秘密鍵をエクスポートする。………☆
4.出力した秘密鍵をクライアントPCに配布。
5.クライアントPCにて、☆でエクスポートした秘密鍵をダブルクリックして、
  証明書ストアにインポート。証明書ストアの"個人"に証明書をインポートできる。
6.クライアントPCのIEにて、https://WebServer/XXXX/XXX.aspx (仮)に接続
7.証明書を要求するポップアップが表示されるので、☆でインストールしたクライアント証明書を選択する。
8.接続OK!!!!!

クライアント認証が必要なWebページの設定や、1.のやり方は
下記の参考サイトをみてみてください。

<参考サイト>
http://msdn.microsoft.com/ja-jp/library/cc402157.aspx
http://d.hatena.ne.jp/replication/20100802/1280928631

上のままだと、WebサイトとCAが同じ所にあるので、非常にまずい。
次の目標はCAをWebサイトとは関係のない、サーバーに立ち上げて運用する
より現実的な方法をまとめあげることだ。

自宅でまとめているので、画面のハードコピーなどはありません。



0 件のコメント:

コメントを投稿