Windows Server OS には「Active Directory 証明書サービス(AD CS)」という役割が OS 標準で導入されています。「Active Directory 証明書サービス(AD CS)」の役割にある「証明機関」の機能をインストールすれば、簡単にプライベートの証明機関を構築することができます。
また、AD CS の役割の中には「証明機関 Web 登録」という機能があり、この機能をインストールすると、Web ブラウザ(Internet Explorer)から構築したプライベートの証明機関を利用することができるようになります。
今回は「証明機関 Web 登録」の基本的な仕組みや機能について紹介します。
証明機関 Web 登録とは
「証明機関 Web 登録」とは「Active Directory 証明書サービス(AD CS)」で構築したプライベートの証明機関を Web ブラウザでも利用できるようにする機能です。
Active Directory 証明書サービスでは、「スタンドアロン CA」と「エンタープライズ CA」の2種類の証明機関を構築することができます。スタンドアロン CA で証明書を発行する場合は、CSR(証明書発行要求)を作成して、CSR のファイルを証明機関を構築したサーバー上にコピーした上で、証明機関の管理ツール上で管理者が証明書を発行する操作を行います。一方、エンタープライズ CA で証明書を発行する場合は、Active Directory ドメイン サービスとの連携を行うことができ、ユーザーが mmc の証明書の登録ウィザードから証明書の発行要求を行うことができます。
証明機関 Web 登録をインストールすると、証明機関の機能の標準で行える証明書の発行方法とは別に、Web ブラウザ(Internet Explorer)で証明機関に CSR の送信、発行された証明書の受領を行うことができるようになります。証明機関 Web 登録の Web ページは、発行する証明書の要求の内容の登録フォームがわかりやすく、一般のユーザーでも利用しやすいという特徴があります。
証明機関のサーバーに「証明機関 Web 登録」をインストールすると、IIS がインストールされ、IIS に certsrv という仮想ディレクトリが自動的に構成されます。certsrv の配下に ASP.NET で実装された「証明機関 Web 登録」のサイト用のファイルが自動で展開されます。ユーザーは Web サイトを経由して、同一サーバーに展開されている証明機関のサービスを利用できます。
ユーザーが「証明機関 Web 登録」を利用する場合は、IE を開いて http://<証明機関の FQDN>/certsrv/ の URL にアクセスします。注意点として、「証明機関 Web 登録」を利用する時の Web ブラウザは、Internet Explorer でなくてはいけません。証明機関 Web 登録では ActiveX コントロールを利用しており、Internet Explorer 以外のブラウザでは正常に動作しない可能性があります。また、Microsoft Edge で証明機関 Web 登録を利用する場合には、Internet Explorer モードを有効にして利用していください。
証明機関 Web 登録のインストール手順
証明機関 Web 登録は、サーバー マネージャーの [役割と機能の追加] からインストールすることができます。もし、証明機関 Web 登録をインストールする対象の証明機関のサーバーに、IIS がインストールされていない場合には、証明機関 Web 登録のインストールのタイミングにて IIS もあわせてインストールさます。
今回は、エンタープライズ CA がインストールされているサーバーに、証明機関 Web 登録をインストールする手順です。動作は Windows Server 2019 で確認しています。
証明機関 Web 登録のインストール手順
1) CA サーバーに管理者権限をもつユーザーでログオンします。
2) [サーバー マネージャー] を開き、[管理] より [役割と機能の追加] をクリックします。
3) [開始する前に] にて、そのまま [次へ] をクリックします。
4) [インストールの種類の選択] にて、[役割ベースまたは機能ベースのインストール] を選択した状態で [次へ] をクリックします。
5) [対象サーバーの選択] にて、既定の設定のまま [次へ] をクリックします。
6) [サーバーの役割の選択] にて、[証明機関 Web 登録] のチェックボックスをクリックします。
7) [証明機関 Web 登録に必要な機能を追加しますか?] というポップアップ画面が表示されたら、[管理ツールを含める(存在する場合)] のチェックボックスが有効になっている状態であることを確認し、[機能の追加] をクリックします。
8) [サーバーの役割の選択] にて、[証明機関 Web 登録] のチェックボックスが有効になっていることを確認して [次へ] をクリックします。
9) [機能の選択] にて、そのまま [次へ] をクリックします。
10) [役割サービスの選択] にて、既定の設定のまま [次へ] をクリックします。
11) [インストール オプションの確認] にて、[インストール] をクリックします。
12) 機能のインストールが完了したら、[対象サーバーに Active Directory 証明書サービスを構成する] をクリックします。
13) [資格情報] にて、[資格情報] の項目にインストール対象のローカルの管理者権限をもつユーザーの資格情報がセットされているこを確認して [次へ] をクリックします。
15) [役割サービス] にて、[証明機関 Web 登録] のチェックボックスを有効にして、[次へ] をクリックします。
16) [確認] にて、[構成] をクリックします。
17) [結果] にて、”構成に成功しました” と表示されたことを確認して [閉じる] をクリックします。
[Windows 管理ツール] より、[インターネット インフォメーション サービス (IIS) マネージャー] を開いて、CertSrv が登録されていることを確認します。
SSL 証明書の構成
証明機関 Web 登録にて証明書の発行するには、クライアントとサーバー間の HTTP 通信が SSL/TLS 暗号化されている必要があります。Web サイトにて HTTPS 通信が行えるように構成するには、サイトに SSL 証明書をバインドする必要があります。証明機関 Web 登録用に SSL 証明書を発行して、サイトにバインドする手順を紹介します。
1) CA サーバーに管理者権限をもつユーザーでログオンします。
2) [ファイル名を指定して実行] を開き、certlm.msc と入力して [OK] をクリックします。
3) [証明書 – ローカル コンピューター] – [個人] – [証明書] を右クリックして、[すべてのタスク] – [新しい証明書の要求] をクリックします。
4) [開始する前に] にて、[次へ] をクリックします。
5) [証明書の登録ポリシーの選択] にて、[Active Directory 登録ポリシー] の項目が選択されていることを確認して [次へ] をクリックします。
6) [証明書の要求] にて、[コンピューター] の証明書テンプレートのチェックボックスを有効にして [次へ] をクリックします。
7) [証明書インストールの結果] にて、[状態] が “成功” と表示されていることを確認して、[完了] をクリックします。
8) コンピューター アカウントの証明書ストアの [個人] の証明書ストアに、新しく発行要求を送信した証明書が登録されていることを確認します。
9) [Windows 管理ツール] より [インターネット インフォメーション サービス (IIS) マネージャー] を開き、[Default Web Site] のサイトを右クリックして [バインドの編集] をクリックします。
10) [サイト バインド] にて、[追加] をクリックします。
11) [サイト バインドの追加] にて、[種類] の項目に “https” を選択し、[SSL 証明書] にて先ほど発行した SSL 証明書を選択し、[OK] をクリックします。
12) [サイト バインド] にて、https のバインドが追加されていることを確認して、[閉じる] をクリックします。
証明機関 Web 登録の証明書の発行
CA サーバーに証明機関 Web 登録をインストールすると、クライアント端末は IE を使って CA サーバーに証明書の発行要求を送信することができるようになります。クライアント端末から証明機関 Web 登録を利用する一般的な手順について紹介します。
1) クライアント端末にて IE を開き、https://<CA サーバーの FQDN>/certsrv へアクセスします。[ようこそ] の画面が表示されたら、[タスクの選択] の項目にある [証明書を要求する] のリンクをクリックします。
2) [証明書の要求] にて、[証明書の要求の詳細設定] のリンクをクリックします。
3) [証明書の要求の詳細設定] にて、[この CA への要求を作成し送信する] のリンクをクリックします。
4) [証明書の要求設定] にて、証明書の要求を指定します。[証明書テンプレート] には、証明書の発行に使用する証明書テンプレートを選択します。また、[キーのオプション] には、証明書に利用するキーペアの設定を指定します。
[証明書の要求設定] では、証明書の要求の詳細を指定することができます。設定項目にある [証明書テンプレート] や [キーオプション] の各種設定の関連情報として、以下の記事が参考になります。
Active Directory 証明書サービスでは、CA の種類として "エンタープライズ" と "スタンドアロン" があります。エンタープライズ CA とスタンドアロン CA の大きな違いの一つとして、証明書テンプレートの有無があげられ[…]
Windows OS の端末で利用する証明書は、"証明書ストア" と呼ばれる仕組みで管理されています。 証明書ストアの詳細については、以下の記事で紹介しておりますのでご参照ください。 [sitecard subtitle=関連記事 ur[…]
[追加オプション] の [ハッシュアルゴリズム] は、発行証明書の署名アルゴリズムを指定するためのオプションではありません。例えば、[追加オプション] の [ハッシュアルゴリズム] に SHA1 を指定したとしても、SHA1 署名の証明書が発行されるわけではありません。証明書に使用される署名アルゴリズムは CA サーバー側の設定で決まり、証明書の発行要求(CSR)では指定できません。
証明書テンプレートの設定
証明機関 Web 登録で証明書の発行要求を送信するときに、[証明書の要求設定] の画面にて、証明書の発行に利用する証明書テンプレートを指定することができます。基本的に証明機関 Web 登録で利用できるのは、証明機関で公開されている証明書テンプレートとなります。
注意点として、証明機関 Web 登録では、バージョン 3 以上の証明書テンプレートを利用できません。そのため、証明機関 Web 登録で利用する証明書テンプレートを用意する場合には、バージョン 2 の証明書テンプレートを用意する必要があります。
証明書テンプレートを新規作成する際に、証明書テンプレートのバージョンを指定する方法は以下の通りです。
バージョン3の証明書テンプレート
バージョン3の証明書テンプレートを作成するためには、① [互換性] タブにて、[証明機関] の項目を “Windows Server 2008” もしくは “Windows Server 2008 R2″、[証明書の受信者] の項目を “Windows Vista/Windows Server 2008” もしくは “Windows 7/Windows Server 2008 R2” 以降に設定した上で、② [暗号化] タブにて [プロバイダーのカテゴリ] の項目を “キー格納プロバイダー” に設定し、[アルゴリズム] を “RSA” に設定します。
バージョン 4 のテンプレート
バージョン3の証明書テンプレートを作成するためには、[互換性] タブにて、[証明機関] の項目を “Windows Server 2012” 以降、[証明書の受信者] の項目を “Windows 8/Windows Server 2012” 以降に設定します。
証明機関 Web 登録で証明書テンプレートが表示されない問題
証明機関 Web 登録では、バージョン3以上の証明書テンプレートは利用できません。証明機関 Web 登録の [証明書の要求設定] の画面にて、利用したい証明書テンプレートが表示されない場合、その証明書テンプレートがバージョン3以上であることが要因である可能性があります。
証明書テンプレートがバージョン3以上である場合、バージョン2に変更することで問題が解消することが見込まれます。
1) エンタープライズ CA があるドメイン環境にて、任意のドメイン コントローラーに管理者権限をもつユーザーでログオンします。
2) [ファイル名を指定して実行] を開き、adsiedit.msc と入力して [OK] をクリックします。
3) メニューにて [操作] – [接続] をクリックします。
4) [接続の設定] にて、[接続ポイント] の項目にて [既知の名前付けコンテキストを選択する] の項目にて “構成” を選択して [OK] をクリックします。
5) 画面の左ペインより、[CN=Configuration,DC=<ドメイン名>] – [CN=Services] – [CN=Public Key Services] – [CN=Certificate Templates] を選択します。
6) 証明書テンプレートの一覧より、対象の証明書テンプレートをダブルクリックしてプロパティ画面を開きます。
7) [属性エディター] タブにて、msPKI-Template-Schema-Version 属性の値を 2 に変更して、プロパティ画面にて [適用]、[OK] をクリックします。
CDP/AIA の設定
Active Directory 証明書サービスで構築した CA サーバーでは、既定の設定では、発行証明書の CDP/AIA に HTTP パスは含まれません。もし、構築した CA サーバーで発行された証明書に HTTP パスを追加したい場合、CRL や CA 証明書を公開する Web サーバーを用意して、発行証明書の CDP/AIA の設定に Web サーバーの URL を追加する必要があります。
Active Directory 証明書サービスで構築した CA サーバーでは、CDP や AIA には、以下の HTTP パスの設定が既定で用意されています。
既定の設定では、発行される証明書に既定の HTTP パスは含まれない設定となっています。しかしながら、[拡張機能] タブの [発行された証明書の CDP 拡張機能に含める] や [発行された証明書の AIA 拡張機能に含める] の設定を有効にすると、CDP や AIA に HTTP パスを追加することが可能です。
CA サーバーに証明機関 Web 登録をインストールすると、IIS に CertSrv のみではなく CertEnroll フォルダが自動で公開されます。この CertEnroll の仮想ディレクトリの物理フォルダは C:\Windows\system32\Certsrv\Enroll となり、CA サーバーが CRL ファイルと CA 証明書のファイルを管理している物理フォルダとなります。
つまり、証明機関 Web 登録をインストールすると、http://<CA サーバーの FQDN>/CertEnroll の URL パスで、CertEnroll 配下にある CRL や CA 証明書がダウンロードできる構成になります。この URL は既定の HTTP パスと一致しているので、証明機関 Web 登録をインストールすれば、[拡張機能] タブの [発行された証明書の CDP 拡張機能に含める] や [発行された証明書の AIA 拡張機能に含める] のチェックボックスを有効にするのみで、発行証明書の CDP や AIA に HTTP パスを含めることができます。
証明機関 Web 登録を利用して、CDP に HTTP を設定する詳細な手順については以下の記事で紹介しています。
証明書に記載されている CDP は、失効させた証明書のリストである CRL を公開している場所のことです。 Active Directory 証明書サービスで構築した証明機関では、既定では CDP に HTTP パスを利用することはできま[…]
ワークグループ端末での利用
エンタープライズ CA は Active Directory ドメイン サービスと連携しており、その仕組みを利用して、ユーザーが mmc の証明書の登録ウィザードから証明書の発行要求を簡易的に行うことができます。ただし、クライアントの mmc から証明書の登録ウィザードから証明書を発行するには、ドメインに参加していることが前提となっています。そのため、ワークグループの端末からはエンタープライズ CA に対して証明書の発行要求を送信することはできません。
証明機関 Web 登録には HTTPS でアクセスするため、ワークグループの端末でも証明書の発行要求を送信することができます。ワークグループの端末にて、証明書の発行要求を行えるようにする構成は以下の通りです。
- ワークグループ端末が証明機関 Web 登録を利用するための AD アカウントを作成します。
- ワークグループ端末から証明機関 Web 登録にアクセスする際に資格情報が求められます。資格情報が求められたら、作成した AD アカウントの資格情報を入力して、証明書の発行要求を送信します。