はじめに
Windows Server 2008に付属しているIIS7.xでSSL(サーバ認証およびクライアント認証)の設定を行う方法を調べてみました。
サーバ証明書の作成
はじめに、SSL通信に必要なサーバ証明書を作成します。
- インターネットインフォメーションサービスマネージャを起動します。
- サーバ証明書を選択します。
- 自己署名入り証明書の作成を選択します。
- 任意の名前をつけて、証明書を作成します。
これで、サーバ証明書が作成されます。以下の手順では、ここで作成したサーバ証明書を使用します。
バインドの編集
IIS7でSSLの設定を行うためには、はじめに「バインドの編集」を行う必要があります。バインドの編集を行わずにSSLの設定画面を表示してみると、項目がグレーアウトされ、設定できないようになっています。
仮想ディレクトリの設定は難なくこなせたが、肝心のSSLの設定がグレーアウトしてしまった。2003のときはサーバー証明書の登録->ディレクトリの設定って感じだったけど、IIS7になってからさっぱりわからん。ちなみにSSL設定画面を表示してみると見事にグレーアウト。
右側の警告を読むと「セキュリティで保護されたバインド(HTTPS)がサイトに存在しないため、SSL接続を受理できません。」と記載されている。
冷蔵庫は本棚でした: IIS7のSSLでハマる
バインドの編集を行うには、以下の手順を踏みます。
- インターネットインフォメーションサービスマネージャを起動します。
- Default Web Siteを右クリックし、バインドの編集を選択します。
- 追加ボタンをクリックし、以下の値で登録します。
種類 | https |
IPアドレス | 未使用のIPアドレスすべて |
ポート | 443 |
SSL証明書 | サーバ証明書の作成の手順で作成したものを選択します。 |
アプリケーション(仮想ディレクトリ)でSSLを有効にする
- 対象のアプリケーション(仮想ディレクトリ)を選択します。
- SSL設定の項目をクリックし、以下の値を選択します。
SSLが必要 | チェックする |
128ビットSSLが必要 | 任意 |
クライアント証明書 | 無視か受理(必要以外の項目に設定しておきます。) |
この状態でアプリケーションにhttpでアクセスすると、アクセス拒否の画面が表示されます。httpsでアクセスすると、正しく画面が表示されるようになります。
続いて、クライアント認証のための設定を行います。
Active Directory 証明書サービスをインストールする
- サーバマネージャを起動し、役割の追加から「Active Directory 証明書サービス」を追加します。
- クライアントからhttp://サーバ名/CertSrv/にアクセスします。
- 証明書を要求するを選択し、次にWebブラウザー証明書を選択します。
- 必要事項を入力し、送信ボタンをクリックします。
これで、クライアントがサーバにアクセスするためのクライアント証明書の発行依頼がサーバに対していきます。次に、サーバ側でこの要求された証明書を発行します。
サーバ側でクライアント証明書を発行する
- 管理ツール−証明機関を選択します。
- 保留中の要求を選択します。
- 右クリック−すべてのタスク−発行するを選択します。
これで、さきほどクライアントから要求したクライアント証明書が発行されます。続いて、クライアント側で発行されたクライアント証明書をインストールします。
クライアント側でクライアント証明書をインストールする。
- クライアントからhttp://サーバ名/CertSrv/にアクセスします。
- 保留中の証明書の要求の状態を選択します。
- 発行された証明書をインストールします。
クライアント側にクライアント証明書がインストールされたら、最後にSSLでクライアント認証を行うよう設定します。
IISでクライアント認証を行うよう設定する
- インターネットインフォメーションサービスマネージャを起動します。
- 対象のアプリケーション(仮想ディレクトリ)を選択します。
- SSL設定の項目をクリックし、以下の値を選択します。
クライアント証明書 | 必要 |
おわりに
これで設定は完了です。クライアント証明書がインストールされた端末からはアプリケーションにアクセスできますが、インストールされていない端末からはアクセスできないようになっていることを確認してみてください。
ソフトバンククリエイティブ
売り上げランキング: 13125