何でも屋: 簡単になった証明書の作成 (第 2 部)

このコラムで紹介する手順に従うと、カスタム証明書を比較的簡単に作成してプロビジョニングできます。

Greg Shields

2011 年 10 月号のコラム「簡単になった証明書の作成 (英語)」では、Active Directory 証明書サービス (AD CS) を構成し、IIS の便利なショートカットを使用して完全に信頼されたサーバー証明書をプロビジョニングするシンプルなステップ バイ ステップの手順を説明しました。このショートカットを使って作成した Web サーバー証明書は、多数の用途、中でも Web トラフィックの認証や暗号化に十分に対応できます。

しかし、基本的な Web サーバー証明書よりも高度な証明書が必要な場合もあります。今日、証明書は、あらゆる場面で (Windows PowerShell、System Center、DirectAccess、および増え続けるサードパーティ製アプリケーション) 必要になっています。これ以上 AD CS を無視できないという現実を受け入れましょう。

嫌になるものですが、AD CS は、短期間であらゆる Active Directory フォレストにおいて欠かせないサービスの 1 つになっています。AD CS の基本を学べば、Windows Server 2012 を使用して、実際に他の証明書の一部をカスタマイズし、展開できることに気付くでしょう。

実際の例

1 種類のカスタム証明書の構成とプロビジョニングに必要な手順を学習すれば、同様の方法で他のほどんどの種類の証明書を生成できます。違うのはテンプレートです。現実的に話を進めるため、このコラムでは、新しい Windows Server 2012 Hyper-V レプリカ用の証明書の設定に関する特殊な要件に重点を置き、順を追って説明します。

2011 年 10 月号のコラム (英語) で説明した AD CS の構成手順はきわめて単純です。この手順を実行すると、ドメインにエンタープライズ ルート証明機関 (CA) を追加できます。また、エンタープライズ ルートの Active Directory 統合により、ドメインに参加しているクライアントの信頼されたルート証明機関ストアにも CA のルート証明書が自動的に展開されます。このルート証明書は、ドメインに参加しているクライアントでエンタープライズ ルート CA が発行した証明書を信頼する場合に必要になります。

Hyper-V レプリカでは、レプリカ間で Kerberos 認証または証明書ベースの認証を使用できます。ホスト間のレプリケーション トラフィックを暗号化する場合は、後者の手法を使用する必要があります。また、同じドメインに参加していないホスト間で VM をレプリケートする場合にも後者の手法が必要です。Hyper-V マネージャーの設定画面で、いずれかのオプションを構成できます (図 1 参照)。

Hyper-V レプリカの設定を構成できる

図 1 Hyper-V レプリカの設定を構成できる

便利な IIS のショートカットにより、一般的な Web サーバーの証明書を生成する作業はそれほど難しくありません。残念ながら、Web サーバー証明書には、Hyper-V レプリカの証明書ベースの認証に必要な機能は含まれていません。適切に構成された証明書がない状態で [証明書の選択] をクリックすると、エラー メッセージが表示されます (図 2 参照)。

Hyper-V レプリカにより、適切に構成された証明書の使用が保証される

図 2 Hyper-V レプリカにより、適切に構成された証明書の使用が保証される

Hyper-V レプリカの証明書では、エクスポート可能な秘密キーを使用し、サーバー認証とクライアント認証の両方をサポートしている必要があります。これらの認証には、Praveen Vijayaraghavan が Microsoft Virtualization のブログ (英語)で説明しているように、[サブジェクト名] フィールドと [サブジェクト代替名] フィールドに関する特殊な要件もあります。レプリケーションの関係を構築するには、プライマリ サーバーの証明書が次の条件を満たしている必要があります。

  • 拡張キー使用法 (EKU) がクライアント認証とサーバー認証の両方をサポートしている。
  • 次のいずれかの手法を使用して [サブジェクト] フィールドまたは [サブジェクト代替名] フィールドが設定されている。
    • [サブジェクト] フィールドにプライマリ サーバー名 (primary1.contoso.com など) を設定します。プライマリ サーバーがクラスター構成になっている場合は、[サブジェクト] フィールドに Hyper-V レプリカ ブローカーの完全修飾ドメイン名 (FQDN) を設定します。
    • [サブジェクト] フィールドにはワイルドカードを含めることができます (*.department.contoso.com など)。
    • SAN 証明書の場合は、サブジェクト代替名の DNS 名にプライマリ サーバー名 (primary1.contoso.com など) を設定します。プライマリ サーバーがクラスター構成になっている場合は、証明書のサブジェクト代替名に、Hyper-V レプリカ ブローカーの FQDN を含める必要があります (この証明書はクラスターのすべてのノードにインストールします)。

サーバーでレプリケーション トラフィックを受信できるようにするには、レプリカ サーバーの証明書が次の条件を満たしている必要があります。

  • EKU がクライアント認証とサーバー認証の両方をサポートしている。
  • 次のいずれかの手法を使用して [サブジェクト] フィールドまたは [サブジェクト代替名] フィールドが設定されている。
    • SAN 証明書の場合は、サブジェクト代替名の DNS 名にレプリカ サーバー名 (replica1.contoso.com など) を設定します。レプリカ サーバーがクラスター構成になっている場合は、証明書のサブジェクト代替名に、レプリカ サーバー名と Hyper-V レプリカ ブローカーの FQDN を含める必要があります (この証明書はクラスターのすべてのノードにインストールします)。
    • [サブジェクト] フィールドにレプリカ サーバー名 (replica1.contoso.com など) を設定します。レプリカ サーバーがクラスター構成になっている場合は、[サブジェクト] フィールドに Hyper-V レプリカ ブローカーの完全修飾ドメイン名 (FQDN) を設定した証明書が、クラスターのすべてのノードにインストールされているようにします。
    • [サブジェクト] フィールドにはワイルドカードを含めることができます (*.department.contoso.com など)。

Vijayaraghavan のブログの説明は役に立ちますが、AD CS を使用したことがない方には理解しにくい可能性があります。そこで、このコラムで、Hyper-V レプリカの要件を満たす最も単純で使用可能な証明書を作成する手順を紹介しましょう。

証明書テンプレートを作成する

すべての AD CS 証明書は、テンプレートから作成します。仮想マシン (VM) テンプレートで VM の出発点を定義するのと同様に、証明書テンプレートでは、生成する証明書の規則を定義します。しかし、AD CS には、Hyper-V レプリカの要件を満たす組み込みのテンプレートがないため、独自のテンプレートを作成する必要があります。ここからが、証明書のカスタマイズがおもしろくなるところです。

サーバー マネージャーの [ツール] から証明機関ユーティリティを起動し、[証明書テンプレート] をクリックします。発行された証明書テンプレートの一覧が表示されます (図 3 参照)。この一覧についてはこの後すぐに説明します。まずは、発行できるテンプレートを作成する必要があります。

証明機関のコンソールに認定されたテンプレートの一覧が表示される

図 3 証明機関のコンソールに認定されたテンプレートの一覧が表示される

[証明書テンプレート] ノードを右クリックします。次に、[管理] をクリックして証明書テンプレート コンソールを開きます。すべての証明書がテンプレートから作成されることは既に説明しましたが、すべてのテンプレートが別のテンプレートから作成されることも把握しておいてください。新しいテンプレートの作成に使用するテンプレートは、コンソール ウィンドウに表示されています (図 4 参照)。

必要なテンプレートが証明書テンプレート コンソールに表示される

図 4 必要なテンプレートが証明書テンプレート コンソールに表示される

コンピューター テンプレートは Hyper-V レプリカ証明書を作成する良い開始点になります。[コンピューター] を右クリックして [テンプレートの複製] をクリックします。この操作により、新しいテンプレートのプロパティ ダイアログ ボックスが表示されます。今回作成する単純な Hyper-V レプリカ証明書では、ほとんどのタブの設定は無視してかまいませんが、一部のタブでは設定が必要です。

[全般] タブ (図 5 参照) で、テンプレート表示名を後で見分けられる名前に変更します。また、必要に応じて有効期間と更新期間を変更することもできます。[Active Directory の証明書を発行する] チェック ボックスをオンにします。このチェック ボックスをオンにすると、CA の Active Directory 登録ポリシーを使用して、この証明書を後で要求できるようになります。この設定は既定で有効になっています。

[全般] タブで全般的な設定を変更できる

図 5 [全般] タブで全般的な設定を変更できる

Hyper-V レプリカ証明書は、証明書の秘密キーをエクスポートできるように構成する必要があります。これは、テンプレートの [要求処理] タブに表示されるチェック ボックスで構成できます。

また、証明書のサブジェクト名を識別する必要もあります。単純な Web サーバー証明書では、ほとんどの場合、証明書を要求するサーバーの FQDN がサブジェクト名になります。Hyper-V レプリカ証明書では、さまざまなサブジェクト名を使用するため、テンプレートの [サブジェクト名] タブで [要求に含まれる] をクリックします。この手法では、証明書の要求時にサブジェクト名またはサブジェクト代替名を定義する必要があります。

テンプレートの [拡張機能] タブで構成が必要な設定はありません。最初にコンピューター テンプレートを複製して Hyper-V レプリカ テンプレートを作成した理由は、コンピューター テンプレートのアプリケーション ポリシーの一覧に、クライアント認証とサーバー認証が含まれているためです。アプリケーション ポリシーは、このテンプレートから生成した証明書でサポートされる機能だと考えることができます。このような機能の正式名称は、"拡張キー使用法 (EKU)" です。

最後は [セキュリティ] タブです。このタブでは、このテンプレートから証明書を生成するユーザーとユーザー グループに、読み取りと登録のアクセス許可を割り当てることができます。先ほど作成したようなテンプレートでは特に注意が必要です。このテンプレートでは、証明書の要求元が証明書のサブジェクト名を定義します。そのため、悪質なユーザーは、このテンプレートを使用して、名前が付けられて信頼されたありとあらゆる証明書を生成できます。

[OK] をクリックしてこれらのプロパティを設定し、証明書テンプレート コンソールを閉じます。次は、Hyper-V レプリカ テンプレートに関する作業を完了するための重要な (そして忘れやすい) 手順を実行します。証明機関に戻り、証明書テンプレートを右クリックして、[新規作成]、[発行する証明書テンプレート] を順にクリックします。Hyper-V レプリカ テンプレートを選択して [OK] をクリックします。これで証明書を登録できる状態になりました。

証明書を登録する

登録処理は、CA の Active Directory 登録ポリシーによって容易に行うことができます。これは、単純にエンタープライズ ルート CA をインストールすることで設定します。まず、Hyper-V レプリカで証明書ベースの認証を有効にする Hyper-V ホストに移動します。次に、空の Microsoft 管理コンソール (MMC) を起動し、コンピューター アカウントの証明書スナップインを追加します。スナップインが読み込まれたら、[個人] をクリックして [証明書] を右クリックし、[すべてのタスク]、[新しい証明書の要求] を順にクリックします (図 6 参照)。

ローカル コンピューターの証明書

図 6 ローカル コンピューターの証明書

この操作により、証明書の登録ウィザードが起動します。このウィザードでは、Active Directory 登録ポリシーで配布できるようになったすべての証明書を登録できます。ウィザードの最初の 2 ページで [次へ] をクリックし、Hyper-V レプリカ テンプレートを表示します。この証明書の登録には、サブジェクト名とサブジェクト代替名の入力が必要なので、情報が不足していることを通知するリンクをクリックしてこれらの名前を入力してください。

これにより、[証明書のプロパティ] ダイアログ ボックスが表示されます (図 7 参照)。このダイアログ ボックスで、サブジェクト名またはサブジェクト代替名を入力します。代替名でワイルドカードを使用するのが、最も単純な解決策です。この証明書の代替名は、"*.company.pri" です。このように設定すると、一致する FQDN のあるすべての Hyper-V レプリカ ホストでこの証明書を使用できます。

証明書のプロパティでワイルドカードを使用できる

図 7 証明書のプロパティでワイルドカードを使用できる

[OK] をクリックし、Hyper-V ホストの個人用ストアに証明書を登録して追加します。このストアは、Hyper-V レプリカが要件を満たす証明書を検索する場所です。"成功" というステータスが表示されていることを確認します (図 8 参照)。[証明書の表示] をクリックして、インストールした証明書を表示することもできます。[完了] をクリックして、ウィザードを終了します。

証明書が正常にインストールされたことがわかる

図 8 証明書が正常にインストールされたことがわかる

証明書をカスタマイズおよび要求するプロセスは以上です。Hyper-V レプリカを構成する最後の手順は、Hyper-V マネージャーに戻って実行します。[Hyper-V の設定] を開き、[レプリケーションの構成] の [証明書の選択] をクリックします。すべての操作が正しく行われていれば、最近インストールした証明書とカスタマイズした証明書が表示されます (図 9 参照)。これで、必要な証明書はほぼ作成して登録できるようになりました。

[Hyper-V の設定] で証明書を選択できる

図 9 [Hyper-V の設定] で証明書を選択できる

煩わしくも、便利なもの

証明書は、これまでいわれのない非難を受けてきたように思えます。カンファレンスやトレーニング セッションで証明書について質問すると、ほとんどの場合は、その部屋中の人々からぽかんとした顔を向けられました。しかし、証明書から逃れることはできません。また、証明書は現在の IT 要件をサポートするために、これまで以上に必要不可欠なものになっている兆しが見られます。必要なのは、証明書を使いやすくすることです。

Greg Shields

Greg Shields (MVP) は、Concentrated Technology の共同経営者です。何でも屋である IT 担当者向けのヒントとテクニックについては、ConcentratedTech.com (英語) を参照してください。

関連コンテンツ