【AD CS】証明書テンプレートのプロパティ画面の各種設定①

  • 2022年10月20日
  • AD CS

Active Directory 証明書サービスを利用して、エンタープライズ CA という種類の証明機関を構築すると、証明書の発行には証明書テンプレートを指定する必要があります。証明書テンプレートとはエンタープライズ CA で使用される証明書のひな型となるもので、証明書に記載される内容や公開鍵の長さなどの設定、また証明書の発行・登録を定義したものとなります。

関連記事

Active Directory 証明書サービスでは、CA の種類として "エンタープライズ" と "スタンドアロン" があります。エンタープライズ CA とスタンドアロン CA の大きな違いの一つとして、証明書テンプレートの有無があげられ[…]

バージョン 2 以上の証明書テンプレートであれば、証明書テンプレートの各種設定を変更することができます。証明書テンプレートのプロパティ画面で設定できる各種設定について説明します。

今回は、[全般]、[互換性]、[要求処理]、[暗号化] タブの設定について紹介します。

 

証明書テンプレートのプロパティ画面の開き方

証明書テンプレートの設定は、証明書テンプレートのプロパティ画面より設定することができます。

証明書テンプレート コンソールを開くと、エンタープライズ CA にて利用できる証明書テンプレートの一覧が表示されます。証明書テンプレート コンソールより、対象の証明書テンプレートをダブルクリックするとプロパティ画面を開くことができます。

1) エンタープライズ CA に管理者権限をもつユーザーで管理者権限でログオンします。

2) [Windows 管理ツール] より [証明機関] をクリックします。

3) 画面の左ペインより、[証明機関(ローカル)] – [<CA 名>] – [証明書テンプレート] を右クリックして [管理] をクリックします。

4) [証明書テンプレート コンソール] より、編集したい対象の証明書テンプレートをダブルクリックするとプロパティ画面を開くことができます。

 

[ファイル名を指定して実行] を開いて、certtmpl.msc と入力して [OK] をクリックしても [証明書テンプレート コンソール] を開くことができます。

 

全般

証明書テンプレートのプロパティ画面の [全般] タブでは、以下の設定を行うことができます。

テンプレート表示名

証明書テンプレートの表示名を設定する項目です。

証明機関(certsrv)や証明書テンプレート コンソールなどの管理コンソール上の表示において、証明書テンプレートのラベルとして扱われます。[テンプレートの表示名] につける名前には、日本語などの2バイト文字を使っても問題ありません。

 

テンプレート名

証明書テンプレートの名前を設定する項目です。

テンプレート名は証明書テンプレートを識別するためにつける名前で、証明書テンプレートのオブジェクトの DN(Distinguished Name) に使用されます。AD で証明書テンプレートのオブジェクトを作成するために使用される識別子に該当する名前になります。

[テンプレート名] につける名前に、日本語などの2バイト文字を利用することもできますが、1バイト文字の半角英数字を利用して名前をつけることをおすすめします。2バイト文字でテンプレート名を指定しても、エンタープライズ CA にて証明書テンプレートを公開・非公開にしたり、証明書テンプレートで証明書を発行する等、基本的な利用においては何も問題は発生しません。しかしながら、証明機関の管理コンソール上で [発行された証明書] の一覧を表示する時に、表示される証明書を証明書テンプレートで絞る時に、テンプレート名が2バイト文字だとフィルターが正しく動作しない等、一部のオプション機能の動作に影響がでることがあります。

 

有効期間

証明書の有効期間を設定する項目です。

証明書は発行したら永久的に利用できるわけではなく、有効期間が決められています。X.509 で定義されている項目には、有効期間の開始日と有効期間の終了日があり、その期間のみ有効とみなされます。有効期間の開始日は、証明書が発行された日時がセットされ、有効期間の終了日は証明書が発行された日時に [有効期間] が加算された日時がセットされます。

エンタープライズ CA で発行される証明書の有効期間は、証明書テンプレート以外の設定も影響します。証明書の有効期間については、以下の記事で詳しく紹介しています。

あわせて読みたい!

Active Directory 証明書サービスで構築した CA サーバーでは、発行する証明書の有効期間を変更できます。 ただし、発行できる証明書の有効期間は自由に変更できるわけではなく、いくつかの制約が存在します。 今回は Activ[…]

 

更新期間

証明書の更新期間を設定する項目です。

証明書の自動登録の機能を有効にしている環境において、証明書の有効期限が切れる前に自動で更新を行うことができます。証明書の自動更新が行われるのは、以下のポリシーの 2 つのオプションが有効になっている環境です。

■コンピューター証明書の自動登録
パス:[コンピューターの構成] – [ポリシー] – [Windows の設定] – [セキュリティの設定] – [公開キーのポリシー]
ポリシー:[証明書サービス クライアント – 自動登録]
設定値:有効
            [有効期限が切れた証明書を書き換え、保留中の証明書を更新、および失効した証明書を削除する] を有効
    [証明書テンプレートを使用する証明書を更新する] を有効

■ユーザー証明書の自動登録
パス:[ユーザーの構成] – [ポリシー] – [Windows の設定] – [セキュリティの設定] – [公開キーのポリシー]
ポリシー:[証明書サービス クライアント – 自動登録]
設定値:有効
            [有効期限が切れた証明書を書き換え、保留中の証明書を更新、および失効した証明書を削除する] を有効
    [証明書テンプレートを使用する証明書を更新する] を有効

証明書の自動登録の機能における、証明書の登録・更新の仕組みは以下の記事で詳しく紹介しています。

あわせて読みたい!

Windows の証明書の自動登録は、ドメイン内のアカウントに証明書を自動で発行・登録する機能です。 今回は証明書の自動登録の内部動作を紹介します。 トラブルシューティングの際においても具体的な動作を抑えておくと便利です。  […]


証明書の自動登録では、クライアント端末は “自動登録” のアクセス権が許可されている証明書テンプレートで発行された証明書が、自身の個人の証明書ストアに登録されているか確認します。もし、該当する証明書が登録されていれば、エンタープライズ CA に発行要求は行われません。しかし、自動登録が許可されている証明書テンプレートで発行された証明書が登録されていても、以下のいずれかの条件に該当すれば “更新すべき証明書” とみなされて、エンタープライズ CA に証明書の発行要求を行います。

  • 証明書の有効期限が切れている証明書
  • 証明書の有効期限が切れそうな証明書(※)
  • 失効された証明書
(※) の証明書の有効期限が切れそうな証明書とは、有効期限が間近な証明書のことを指しますが、更新の対象となる期間は、この [更新期間] の項目で設定できます。例えば、証明書の有効期間の終了日が 2025 年 7 月 1 日となっている証明書では、更新期間の設定の 6 週間前である 2025 年 5 月 20 日から証明書の自動更新が試行される動作となります。

自動登録で登録された証明書が、有効期限間近にも関わらず更新されないことがあります。

証明書の [有効期間] が 1 年で、[更新期間] が 6 週間の場合、終了日の 6 週間(42日)前から自動更新が試行されるはずですが、更新予定の日から何日か経過しても証明書が更新されないことがあります。

証明書が自動更新されない原因としてよくある事例が、証明書の有効期間の 80 %ルール によるものです。

仮に更新期間で設定された更新日になっても、それが証明書の有効期間の 80% を満たさない場合は更新は行われず、有効期間の 80% を経過した後に自動更新されるという動作になります。

 

Active Directory の証明書を発行する

発行した証明書を、アカウントの userCertificate 属性に登録するかを決める項目です。

証明書の発行の対象となるユーザー アカウントやコンピューター アカウントには、userCertificate 属性が定義されています。この属性値には、アカウントに対して発行された証明書のデータが登録されます。userCertificate 属性に登録されている証明書は、「資格情報の移動」や「Exchange や Outlook での S/MIME によるメッセージの署名や暗号化」などの機能で利用されます。


エンタープライズ CA は、Active Directory ドメイン サービスと連携した証明機関であるため、ドメインに参加している端末からは簡易に証明書の発行要求を送信することができます。エンタープライズ CA 側への証明書の要求の際には、AD 認証が行われているため、どのアカウントが要求を送信してきているかを確認できます。証明書の発行に利用された証明書テンプレートに [Active Directory の証明書を発行する] のチェックが有効になっている場合、エンタープライズ CA は、要求元のアカウントの userCertificate 属性に発行された証明書を登録する動作となります。

 

Active Directory に重複する証明書がある場合、自動的に再登録しない

ユーザー アカウントの userCertificate 属性に、その証明書テンプレートで発行した証明書が登録されている場合、証明書を再登録する機能を無効する項目です。前提条件として、この項目を設定にするには、[Active Directory の証明書を発行する] のチェックが有効になっている必要があります。

証明書の自動登録の機能の基本的な動作では、クライアント端末は “自動登録” のアクセス権が許可されている証明書テンプレートで発行された証明書が、ユーザー アカウントの個人の証明書ストアに登録されているか確認します。もし、該当する証明書が登録されていない場合は、エンタープライズ CA に証明書の発行要求を行い、証明書を登録します。

ただし、”自動登録” のアクセス権が許可されている証明書テンプレートにて、[Active Directory に重複する証明書がある場合、自動的に再登録しない] のチェックが有効になっていると、ユーザー アカウントの userCertificate 属性をチェックします。もし、userCertificate 属性に対象の証明書テンプレートで発行された証明書のデータが登録されている場合、証明書の自動登録を行いません。

 


例えば、ユーザー「ねこねこ」が端末 PC01 にて、自動登録されたユーザー証明書を証明書ストアから誤って削除してしまった場合、証明書ストアにはユーザー証明書は登録されていない状態となります。しかしながら、最初に自動登録されたタイミングにて userCertificate 属性に証明書が登録されているため、証明書ストアに対象の証明書が登録されていなくても、ユーザー証明書が再度自動登録されることはありません。また、別の端末 PC02 へユーザー「ねこねこ」がログオンした場合でも、ユーザー証明書は自動登録されません。

コンピューター証明書の自動登録では、userCertificate 属性に該当の証明書があっても再登録されます。

 

互換性

証明書テンプレートのプロパティ画面の [互換性] タブでは、以下の設定を行うことができます。

 

証明機関

証明書テンプレートを利用できるエンタープライズ CA の OS のバージョンを指定することができます。

ドメイン内では複数のエンタープライズ CA を構築することができ、エンタープライズ CA ごとに端末の OS のバージョンが異なる場合が考えられます。証明書テンプレートの設定項目は、OS のバージョンが上がるにつれ拡張されていますが、古い OS のバージョンの端末に構築されているエンタープライズ CA では新しい設定項目は利用できません。そのため、[証明機関] の項目にて、証明書テンプレートを利用できる証明機関の OS のバージョンを指定します。

[証明機関] の項目では、以下の OS バージョンを指定することができます。

  • Windows Server 2003
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows Server 2016

この設定項目には、利用可能な OS の最小バージョンを指定します。上位互換がある設定であるため、[証明機関] の項目に “Windows Server 2003” を指定すると、Windows Server 2003 以降の全ての OS のバージョンのエンタープライズ CA にて利用することができます。一方、[証明機関] の項目に “Windows Server 2016” を指定すると、Windows Server 2016 以降の全ての OS バージョンのエンタープライズ CA にて利用することができますが、Windows Server 2003 のような、Windows Server 2016 より前の OS バージョンのエンタープライズ CA では利用できません。 

 

証明書の受信者

証明書テンプレートを指定して発行要求を行えるクライアント端末の OS のバージョンを指定することができます。

ドメイン内で管理している端末には、様々なバージョンのクライアント OS やサーバー OS があることが多いです。証明書テンプレートを利用できるエンタープライズ CA の OS のバージョンを指定することができます。証明書テンプレートの設定項目は、OS のバージョンが上がるにつれ拡張されていますが、古い OS のバージョンの端末では新しい設定項目は利用できません。そのため、[証明書の受信者] の項目にて、証明書テンプレートを利用できるクライアント端末のバージョンを指定します。

[証明書の受信者] の項目では、以下の OS バージョンを指定することができます。

  • Windows XP / Server 2003
  • Windows Vista / Server 2008
  • Windows 7 / Server 2008 R2
  • Windows 8 / Windows Server 2012
  • Windows 8.1 / Windows Server 2012 R2
  • Windows 10 / Windows Server 2016


この設定項目には、利用可能な OS の最小バージョンを指定します。上位互換がある設定であるため、[証明書の受信者] の項目に “Windows XP / Server 2003” を指定すると、Windows XP や Windows Server 2003 以降の全ての OS のバージョンのドメイン参加端末で証明書を発行することができます。一方、[証明書の受信者] の項目に、Windows 10 / Windows Server 2016 を指定すると、Windows 10 / Windows Server 2016 以降の全ての OS のバージョンのドメイン参加端末で利用することはできますが、それより前の OS バージョンの端末では証明書を発行することができません。

 

結果的な変更を表示

[証明機関] もしくは [証明書の受信者] で指定するバージョンを下位から上位に上げると、利用可能となる証明書テンプレートの設定が増えます。[結果的な変更を表示] のチェックボックスを有効にしておくと、バージョンを変更した時にどの設定が利用可能となるのかポップアップで表示されます。

 

要求処理

証明書テンプレートのプロパティ画面の [要求処理] タブでは、以下の設定を行うことができます。

 

用途

証明書のキーペアの用途を指定する項目です。この用途で指定できる設定値は以下の通りです。

  • 暗号化:キーペアはデータの暗号化のみに使用できます
  • 署名:キーペアは、データの署名、また作成された署名を検証するのみに使用できます
  • 署名と暗号化:キーペアは、データの署名と暗号化の両方に使用できます
  • 署名とスマートカードログオン:キーペアは Kerberos 認証の目的で、データの署名と暗号化をするために使用できます。キーペアは2要素ハードウェアデバイス(スマートカードなど)に格納される必要があります。

キーペアの用途の設定に応じて、証明書の “キー使用法” の値が変わります

 

無効な証明書、および有効期限が切れた証明書を削除する(アーカイブしない)

証明書の有効期間が切れたり、証明書が失効されたことにより証明書が更新された場合、以前に発行された証明書が証明書ストアから削除する動作になるオプション設定です。既定の動作としては、証明書の更新された場合、以前に発行された証明書はアーカイブされます。

 

サブジェクトが許可した対象アルゴリズムを含める

証明書を要求するときに、サポートされている対象アルゴリズムの一覧をサブジェクトが提供できます。このオプションにより、サポートされる対象アルゴリズムを、Microsoft Office Outlook などのアプリケーションの証明書に含まれるようにできます。

 

サブジェクトの秘密キーをアーカイブする

エンタープライズ CA にてキーをアーカイブする構成に設定されている場合、サブジェクト(クライアント)の秘密キーをアーカイブします。

 

秘密キーのエクスポートを許可する

秘密キーのエクスポートを許可する設定です。

端末に登録されている証明書は、[証明書のエクスポート ウィザード] よりエクスポートすることができます。[秘密キーのエクスポートを許可する] のオプションが有効になっている証明書テンプレートで証明書を発行すると、秘密キー付きで証明書(pfx 形式ファイル)をエクスポートすることができます。別の端末で証明書を利用したい場合には、このオプションを有効にします。

[秘密キーのエクスポートを許可する] オプションが無効になっている場合、証明書のエクスポート ウィザードを立ち上げた時に、[はい、秘密キーをエクスポートします] のオプションがグレーアウトされ、秘密キーをエクスポートすることができない状態で証明書が登録されます。そのため、秘密キーを他端末に持ち出すことができないため、オプションを無効にしている方が安全な構成となります。

 

同じキーで書き換え

証明書の更新を行う時に、同じキーペアで証明書を更新するオプションです。

このオプションは、[証明書の受信者] の設定を “Windows 8 / Windows Server 2012” 以降のバージョンに設定しないと利用できません。 

 

スマート カード証明書の自動書き換えで、新しいキーを作成できない場合は既存のキーを使用する

スマート カードに登録されている証明書を自動登録の書き換えを行う際に、新しいキーペアを作成できない状況の場合は既存のキーペアを使用するオプションです。

このオプションは、[証明書の受信者] の設定を “Windows 8 / Windows Server 2012” 以降のバージョンに設定しないと利用できません。 

 

サブジェクトが登録され、この証明書に関連付けられた秘密キーが使われているとき、次のことを実行する

ユーザー証明書の自動登録を行う時に、ユーザー操作を求めるかどうかを設定する項目です。この項目は、以下の 3 つのいずれかの選択肢から選択することができます。

  • ユーザー入力なしでサブジェクトを登録する
  • 登録中にユーザーにメッセージを表示する
  • 登録中にユーザーにメッセージを表示し、秘密キーが使われている場合はユーザー入力を求める


各設定値の動作は以下の通りです。

ユーザー入力なしでサブジェクトを登録する

ユーザー証明書の自動登録が行われる時に、ユーザーへの入力を必要とせずに自動でユーザー証明書が登録されます。このオプションでの動作が、通常のユーザー証明書の自動登録における既定動作となります。

 

登録中にユーザーにメッセージを表示する

ユーザー証明書の自動登録が行われる時に、以下の通知メッセージが表示されます。通知メッセージをクリックすると、証明書の登録ウィザードが立ち上がって、ユーザーが証明書の登録要求を行います。

通知メッセージ

 

証明書の登録ウィザードの流れ

 

証明書の自動登録の機能では、自動登録のアクセス許可が設定されている証明書テンプレートで発行された証明書が登録されていない限り、証明書の登録を試行する動作となります。そのため、このオプションを選択している場合、ユーザーが登録ウィザードを操作して証明書の登録を行うまで、通知メッセージが表示され続ける動作となります。

 

登録中にユーザーにメッセージを表示し、秘密キーが使われている場合はユーザー入力を求める

ユーザー証明書の自動登録が行われる時に、以下の通知メッセージが表示されます。通知メッセージをクリックすると、証明書の登録ウィザードが立ち上がって、ユーザーが証明書の登録要求を行います。証明書の登録ウィザードの際に、秘密キーのセキュリティ保護の設定を行った上で証明書を発行するという動作になります。

通知メッセージ

 

証明書の登録ウィザードの流れ

このオプションも同様に、ユーザーが登録ウィザードを操作して証明書の登録を行うまでは、通知メッセージが表示され続ける動作となります。

 

暗号化

証明書テンプレートのプロパティ画面の [暗号化] タブでは、以下の設定を行うことができます。

 

プロバイダーのカテゴリ

Windows OS では、証明書や秘密鍵のデータを扱う際に、暗号化プロバイダーを利用します。暗号化プロバイダーには大きく分けて、CSP と KSP の2種類があります。暗号化プロバイダーについては、以下の記事でも紹介しています。

あわせて読みたい!

Windows OS の端末で利用する証明書は、"証明書ストア" と呼ばれる仕組みで管理されています。 証明書ストアの詳細については、以下の記事で紹介しておりますのでご参照ください。 [sitecard subtitle=関連記事 ur[…]

この項目では、どちらの暗号化プロバイダーの種類を利用するかを指定します。[プロバイダーのカテゴリー] では、[キー格納プロバイダー] と [レガシー暗号化サービス プロバイダー] の選択肢を選択することができます。[キー格納プロバイダー] が KSP、[レガシー暗号化サービス プロバイダー] が CSP となります。

このオプションは、[証明書の受信者] の設定を “Windows Vista / Server 2008” 以降のバージョンに設定しないと利用できません。 

 

アルゴリズム名

暗号化プロバイダーで使用する公開鍵暗号のアルゴリズムを指定できます。この項目は、[プロバイダーのカテゴリ] にて “キー格納プロバイダー” を選択した場合に、選択することができます。[レガシー暗号化サービス プロバイダー] の場合は、プロバイダーの種類に依存して自動的に選択されます。

[キー格納プロバイダー] の公開鍵暗号のアルゴリズムで選択できるのは、ECDH_P256ECDH_P384ECDH_P521RSA です。

このオプションは、[証明書の受信者] の設定を “Windows Vista / Server 2008” 以降のバージョンに設定しており、プロバイダーのカテゴリに “キー格納プロバイダー” を選択していないと利用できません。

 

最小キー サイズ

公開鍵の最小キー サイズを指定します。

 

要求で使用できる暗号化サービス プロバイダーを選択してください

暗号化プロバイダーを指定します。プロバイダーのカテゴリで、[レガシー暗号化サービス プロバイダー] (CSP) を選択している場合はプロバイダーの一覧は CSP であり、[キー格納プロバイダー](KSP) を選択している場合はプロバイダーの一覧は KSP となります。

[サブジェクトのコンピューターで利用可能な任意のプロバイダー] を選択した場合は、証明書の発行要求を送信するクライアント端末側で利用できるプロバイダーが選択されます。[以下のプロバイダーのうちいずれか1つ] を選択した場合は、利用対象とするプロバイダーのチェックボックスを選択します。この設定で選択しているプロバイダーが少なく、クライアント端末側で利用できないプロバイダーである場合、証明書の発行ができない構成になるので注意してください。

 

ハッシュの要求

要求の署名に使用されるハッシュ アルゴリズムを選択できます。MD2、MD4、MD5、SHA1、SHA256、SHA384、SHA512 から選択できます。この項目は、[プロバイダーのカテゴリ] にて “キー格納プロバイダー” を選択した場合に、選択することができます。

ここで選択されるハッシュ アルゴリズムは、あくまで CSR の署名に使用されるハッシュアルゴリズムであり、発行される証明書の署名ハッシュ アルゴリズムではありません。そのため、この項目で MD5 や SHA1 などの脆弱なアルゴリズムを選択したとしても、基本的には影響はありません。

このオプションは、[証明書の受信者] の設定を “Windows Vista / Server 2008” 以降のバージョンに設定しており、プロバイダーのカテゴリに “キー格納プロバイダー” を選択していないと利用できません。

 

別の署名の形式を使用する

プロバイダーのカテゴリにて [キー格納プロバイダー] を選択し、アルゴリズムで [RSA] を選択している場合、CSR の署名を PKCS #1 V2.1 形式で含めるように指定できます。

このオプションは、[証明書の受信者] の設定を “Windows Vista / Server 2008” 以降のバージョンに設定しており、プロバイダーのカテゴリに “キー格納プロバイダー” を選択していないと利用できません。