IIS 8.0 の集中 SSL 証明書サポート: SSL のスケーラビリティと管理状態
担当: Shaun Eagan
互換性
バージョン | メモ |
---|---|
IIS 8.0 | 集中 SSL 証明書サポートは IIS 8.0 で導入されました。 |
IIS 7.5 | IIS 7.5 では集中 SSL 証明書サポートがサポートされていませんでした。 |
IIS 7.0 | IIS 7.0 では集中 SSL 証明書サポートがサポートされていませんでした。 |
問題
より多くの e コマース サイトがオンライン化され、より多くの企業が機密文書をオンラインで保存および共有するようになるにつれ、セキュリティで保護されたサイトをホストし、拡張する機能の重要性はますます高まっています。 さらに、クラウド ホスティングと弾力性のあるスケーラビリティにより、サーバー容量を動的に追加および削除する必要があります。 Windows Server 2012 以前では、セキュリティで保護されたサイトのホストにいくつかの課題があります。
- SSL スケーラビリティ: 共有ホスティングなどのマルチテナント環境では、Windows Server でホストできるセキュリティで保護されたサイトの数に制限があり、サイト密度が低くなります。
- SSL 管理性: 証明書は各 Windows Server にローカルに格納されます。 そのため、Windows Server ごとに個別に管理する必要があります。 証明書の更新などの単純なタスクは、すべてのサーバーで繰り返す必要があります。 さらに、何千もの証明書をインポートする必要がある場合は、新しい Windows Server の追加に数時間かかることがあります。
解決策
Windows Server 2012 では、[集中 SSL 証明書のサポート] 機能によって、サーバー管理者はファイル共有の証明書を一元的に保存およびアクセスできます。 Windows Server 2008 で導入された共有構成機能と同様に、サーバー ファーム内の Windows Server は、ファイル共有からオンデマンドで証明書を読み込むよう構成できます。
この機能により、SSL バインドの管理エクスペリエンスが大幅に簡素化されます。 SSL に関しては、証明書の DNS 名と CN 名が一致している必要があります。 類似のコントラクトを証明書のファイル名にさらに拡張できます。 たとえば、www.contoso.com
はファイル名 www.contoso.com.pfx
を持つ証明書を使用します。 このコントラクトによって、この機能を使用しているセキュリティ保護されたサイトの数に関係なく、IIS 8.0 が SSL バインドを 1 つだけ持つようになります。 対応する証明書は、要求された Web サイトの SNI 値やホスト名、または証明書のファイル名との照合によって、どの証明書を使用するかを推測します。
ステップ バイ ステップの手順
前提条件
IIS 8.0 は、集中 SSL 証明書機能を備えた Windows Server 2012 にインストールされています。 この機能は IIS のオプション コンポーネントであり、既定のインストールの一部としてはインストールされません。
この機能をインストールするには、サーバー マネージャーから [セキュリティ] ノードの [集中 SSL 証明書のサポート] を選択してください。
NULL パスワードを使用した証明書のサンプル。 (または、1 つのグローバル パスワードを持つサンプル証明書がある場合もあります。)
- 証明書には、CN_name.pfx (つまり、
www.contoso.com.pfx
) の名前付け規則が必要です。 - 証明書が wildchar 証明書の場合は、wildchar として "_" を使用します。 (つまり、
_.contoso.com.pfx
)。 - 証明書に複数の CN 名がある場合は、個々のファイルとして名前を付ける必要があります。 (つまり、
www.contoso1.com.pfx
、www.contoso2.com.pfx
など)
- 証明書には、CN_name.pfx (つまり、
2 つのファイル共有: 1 つは共有構成用、もう 1 つは集中 SSL 証明書用です。
- IIS サーバーは共有構成を使用しています。
- サンプル証明書は、集中 SSL 証明書のためにファイル共有にコピーされています。
\windows\system32\drivers\etc\hosts は、サンプル サイトと証明書に使用するように変更されました。 たとえば、証明書の CN 名が centralCert0 である場合、Hosts ファイルには次のものが含まれている必要があります。
127.0.0.1 centralCert0
既知のバグの回避策
現時点では、この機能に関する既知のバグはありません。
集中 SSL 証明書のサポート機能を構成する
IIS マネージャーを開きます。
左側のナビゲーション ウィンドウでサーバー ノードを選択します。
[管理] で、[集中証明書] をダブルクリックします。
[アクション] ウィンドウで、[機能設定の編集] を選択します。
次の情報を入力してください。
集中証明書を有効にする: 選択済み
Physical path: 次に例を示します。
\\ccdemo\centralcert
- これは、証明書が配置されているファイル共有への UNC パスです。
ユーザー名: ファイル共有への読み取りアクセス権を持つユーザー アカウントを指定します。
パスワード/パスワードの確認入力.
証明書の秘密キーのパスワード:
これは省略可能です。 証明書にパスワードがない場合は、空のままにします。
証明書に 1 つのグローバル パスワードがある場合は、ここにそのパスワードを入力します。
集中 SSL 証明書サポート機能を使用する準備ができました。 IIS マネージャーは証明書を読み取り、証明書に関して最も関連性の高い情報を入力することに注意してください。 この情報は、パフォーマンス向上のためにキャッシュされます。
どれほど簡単に証明書を確認できるかをご覧ください。
Expired
明日期限切れ
今週期限切れ
来週期限切れ
来月期限切れ
後で実行
セキュリティで保護された Web サイトを作成する
IIS マネージャーを開きます。
左側のナビゲーション ウィンドウで [サイト] を選択します。
[Web サイトの追加] の選択:
次のサイトを作成する場合と同様に、情報を入力します。
サイト名: centralCert0
物理パス:
c:\inetpub\wwwroot
種類: https
ホスト名: centralcert0
- これは、SSL にホスト名を指定できる Windows Server 2012 の新機能です。
- この構成の実際の値は、使用されているサンプル証明書によって異なります。
Server Name Indication が必要: 未選択
- また、[Server Name Indication が必要] を選択することもできます。 集中証明書ストアで SNI を使用する必要はありませんが、SNI を使用する場合は正しく機能します。
- 開発者プレビュー リリースでは、集中証明書ストアでも SNI を使用する必要があることに注意してください。 ベータ版のリリースで、この制限はなくなりました。
集中証明書ストアを使用する: 選択済み
- 使用される特定の対応する証明書を選択する必要はないことに注意してください。
- 名前付けコントラクトの使用により、対応する証明書が自動的に選択されます。 この例では、IIS は集中 SSL 証明書ファイル共有から centralcert0.pfx を読み取ろうとします。
次のようにサイトが作成されたことを確認します。
これで終了です。 セキュリティで保護されたサイトは、集中 SSL 証明書のサポートを使用して作成されました。 管理エクスペリエンスは、共有構成と従来の SSL バインドによく似ています。 相違点は以下のとおりです。
- 証明書は、ファイル共有に一元的に格納されます。
- SSL サイトにはホスト名を指定できます。
- SSL バインドは、明示的に 1 対 1 で管理されていません。
セキュリティで保護されたサイトをテストする
ブラウザーを開き、 https://centralcert0/
に移動します。 前提条件の一部として、Hosts ファイルは、この要求を localhost にルーティングするように変更する必要があることに注意してください。
さらに、新しい SSL バインドの種類を確認するには、管理者特権のコマンドライン ウィンドウに次のように入力します。
netsh http show sslcert
SSL バインドは、値 *:443 を持つ hostname:port であることに注意してください。 さらに、 certificate hash は、証明書のファイル名コントラクトに基づいて、対応する証明書がオンデマンドで読み込まれるため、このバインドに関連付けされません。
シナリオ
次のシナリオをデプロイしてください。
集中 SSL 証明書のサポートは、マルチテナント環境向けにスケーリングするように設計されています。 この機能を使用して、何千ものセキュリティで保護されたサイトを構成してください。
何千もの証明書を使用して、管理者特権のコマンド ライン ウィンドウで次のコマンドを実行します。 セキュリティで保護されたサイトの数に関係なく、バインドは 1 つだけであることに注意してください。
netsh http show sslcert
このサーバー ファームに新しいサーバーを追加してください。 共有構成と集中 SSL 証明書のサポート機能を使用して、次の 3 段階の手順を実行します。
共有構成を使用するように新しいサーバーを構成します。
集中 SSL 証明書のサポートを使用するように新しいサーバーを構成します。
SSL バインドを作成します。 管理者特権のコマンド ライン ウィンドウに、次のように入力します。
add sslcert hostnameport=*:443 appid={00112233-4455-6677-8899-AABBCCDDEFF}
以前のバージョンの Windows Server とは異なり、Windows Server 2012 の証明書はオンデマンドでメモリに読み込まれます。 集中 SSL 証明書のサポート機能を使用して何千ものセキュリティで保護されたサイトを構成した後、そのいずれかに GET 要求を送信し、メモリ使用量を確認します。 あと少しです。 以前のバージョンの Windows Server では、何百ものセキュリティで保護されたサイトが構成されている場合、1 つの GET 要求のみを送信すると、Windows Server ですべての証明書が読み込まれるため、メモリ使用量が多くなり、スケーラビリティがさらに制限されます。
SNI、従来の集中 SSL 証明書のサポートを使用して、セキュリティで保護されたサイトを作成します。 これらは共存するように設計されています。
まとめ
これで、Windows Server 2012 で集中 SSL 証明書の機能を確認できました。