信頼されたルートおよび許可されない証明書を Windows で構成する

適用対象: Windows Server (サポートされているすべてのバージョン)、Windows クライアント、Azure Stack HCI。

インターネットに接続されていない環境内で証明書信頼リスト (CTL)、信頼されていない CTL、または信頼された CTL ファイルのサブセットをホストするファイルまたは Web サーバーに Microsoft の自動更新 URL をリダイレクトします。

Microsoft ルート証明書プログラムによって Windows オペレーティング システム全体に信頼されたルート証明書が自動配布される方法の詳細については、「証明書と信頼」を参照してください。

ヒント

コンピューターが Windows Update サイトに直接接続できる環境の場合は、Microsoft の自動更新 URL をリダイレクトする必要はありません。 Windows Update サイトに接続できるコンピューターでは、更新された CTL を毎日受け取ることができます。

前提条件

接続されていない環境を構成して、ファイルまたは Web サーバーでホストされている CTL ファイルを使用できるようにする前に、次の前提条件を満たす必要があります。

クライアントに関する前提条件

  • Microsoft から CTL をダウンロードするために、インターネットに接続できるコンピューターが少なくとも 1 台必要です。 ctldl.windowsupdate.com に接続するために、コンピューターには、HTTP (TCP ポート 80) アクセスと名前解決 (TCP および UDP ポート 53) 機能が必要です。 このコンピューターには、ドメイン メンバーまたはワークグループのメンバーを指定できます。 現在、ダウンロードしたすべてのファイルは、約 1.5 MB の領域を必要とします。
  • クライアント マシンは Active Directory Domain Services ドメインに接続されている必要があります。
  • ローカルの Administrators グループのメンバーである必要があります。

サーバーの前提条件

  • CTL ファイルをホストするためのファイル サーバーまたは Web サーバー。
  • クライアントに構成設定を展開するための AD グループ ポリシーまたは MDM ソリューション。
  • Domain Admins グループのメンバーであるか、必要なアクセス許可が委任されているアカウント

構成方法

管理者は、自動更新メカニズムを使用して、次のファイルをダウンロードするようにファイルまたは Web サーバーを構成できます。

  • authrootstl.cab。Microsoft 以外の CTL が含まれます。

  • disallowedcertstl.cab。信頼されていない証明書を含む CTL が含まれます。

  • disallowedcert.sst。信頼されていない証明書を含む、シリアル化された証明書ストアが含まれます。

  • <thumbprint>.crt。Microsoft 以外のルート証明書が含まれます。

この構成を実行する手順については、このドキュメントの「CTL ファイルをダウンロードするようにファイル サーバーまたは Web サーバーを構成する」を参照してください。

ローカル CTL ファイルまたは信頼された CTL のサブセットを使用するように環境を構成するには、いくつかの方法があります。 次の方法を使用できます。

  • Windows Update サイトにアクセスできなくても、信頼された CTL と信頼されていない CTL に自動更新機構を使用するように、Active Directory ドメイン サービス (AD DS) ドメイン メンバー コンピューターを構成します。 この構成については、このドキュメントの「Microsoft の自動更新 URL をリダイレクトする」セクションをご覧ください。

  • 信頼されていない CTL と信頼された CTL の自動更新を独立してオプトインするように AD DS ドメイン メンバー コンピューターを構成します。 独立したオプトインの構成については、このドキュメントの「信頼されていない CTL についてのみ Microsoft の自動更新の URL をリダイレクトする」セクションをご覧ください。

  • Windows ルート証明書プログラムで一連のルート証明書を調べます。 ルート証明書セットを調べると、管理者はグループ ポリシー オブジェクト (GPO) を使って配布する証明書のサブセットを選択できます。 この構成については、このドキュメントの「信頼された CTL のサブセットを使用する」セクションをご覧ください。

重要

  • このドキュメントで説明している設定は、GPO を使用することによって実装されます。 GPO が AD DS ドメインからリンク解除された場合や、AD DS ドメインから削除された場合、これらの設定は自動的には削除されません。 これらの設定が実装されている場合、GPO を使用するか、影響を受けるコンピューターのレジストリを変更することによってのみ設定を変更できます。

  • このドキュメントで説明する概念は、Windows Server Update Services (WSUS) には依存しません。

CTL ファイルをダウンロードするようにファイル サーバーまたは Web サーバーを構成する

インターネットに接続されていない環境で信頼された証明書や信頼されていない証明書を容易に配布できるようにするには、まず自動更新機構から CTL ファイルをダウンロードするように、ファイル サーバーや Web サーバーを構成する必要があります。

Windows Update から CTL ファイルを取得する

  1. 自動更新機構を使って同期することができ、CTL ファイルの格納に使用するファイル サーバーまたは Web サーバーで共有フォルダーを作成します。

    ヒント

    開始する前に、サービス アカウントでスケジュールされたタスクを使用する場合は特に、適切なアカウントのアクセスを許可するために、共有フォルダーのアクセス許可と NTFS フォルダーのアクセス許可を調整する必要があります。 アクセス許可の調整の詳細については、「共有フォルダーのアクセス許可を管理する」をご覧ください。

  2. 管理者特権の PowerShell プロンプトから、次のコマンドを実行します。

    Certutil -syncWithWU \\<server>\<share>
    

    <server> は実際のサーバー名に、<share> は共有フォルダー名に置き換えます。たとえば、サーバー名が Server1 で共有フォルダー名が CTL の場合は、次のコマンドを実行します。

    Certutil -syncWithWU \\Server1\CTL
    
  3. インターネットに接続されていない環境のコンピューターが、FILE パス (たとえば、FILE://\\Server1\CTL) または HTTP パス (たとえば、http://Server1/CTL) を使用してネットワーク経由でアクセスできるサーバーで、CTL ファイルをダウンロードします。

Note

  • CTL を同期するサーバーが、インターネットに接続されていない環境のコンピューターからアクセスできない場合は、他の方法で情報を転送する必要があります。 たとえば、ドメイン メンバーのうちの 1 台がサーバーに接続することを許可し、そのドメイン メンバー コンピューター上で、内部 Web サーバーの共有フォルダーに情報をプルする別のタスクをスケジュールします。 まったくネットワーク接続がない場合は、リムーバブル記憶装置などの手動の処理でファイルを転送する必要があります。

  • Web サーバーを使用する場合、CTL ファイル用の新しい仮想ディレクトリを作成する必要があります。 インターネット インフォメーション サービス (IIS) を使用して仮想ディレクトリを作成する手順は、このドキュメントで説明するすべてのサポートされているオペレーティング システムでほぼ同じです。 詳細については、「 仮想ディレクトリを作成する (IIS 7)」をご覧ください。

  • Windows の特定のシステム フォルダーやアプリケーション フォルダーには、特殊な保護が適用されています。 たとえば、inetpub フォルダーでは特殊なアクセス許可が必要であり、スケジュールされたタスクでファイル転送用に使用する共有フォルダーを作成することを難しくしています。 管理者は、ファイル転送に使用する論理ドライブ システムのルートにフォルダーの場所を作成できます。

Microsoft の自動更新 URL をリダイレクトする

ネットワーク内のコンピューターがインターネットに接続されていない環境で構成されているため、自動更新メカニズムを使用したり、CTL をダウンロードしたりできない場合があります。 AD DS に GPO を実装して、別の場所から CTL 更新プログラムを取得するようにこれらのコンピューターを構成できます。

ここで説明する構成を実行するには、「CTL ファイルをダウンロードするようにファイル サーバーまたは Web サーバーを構成する」の手順を完了している必要があります。

GPO のカスタム管理用テンプレートを構成するには

  1. ドメイン コントローラーで、新しい管理用テンプレートを作成します。 メモ帳でテキスト ファイルを開き、ファイル名拡張子を .adm に変更します。 このファイルの内容は次のようになります。

    CLASS MACHINE
    CATEGORY !!SystemCertificates
        KEYNAME "Software\Microsoft\SystemCertificates\AuthRoot\AutoUpdate"
        POLICY !!RootDirURL
           EXPLAIN !!RootDirURL_help
           PART !!RootDirURL EDITTEXT
                 VALUENAME "RootDirURL"
           END PART
        END POLICY
    END CATEGORY
    [strings]
    RootDirURL="URL address to be used instead of default ctldl.windowsupdate.com"
    RootDirURL_help="Enter a FILE or HTTP URL to use as the download location of the CTL files."
    SystemCertificates="Windows AutoUpdate Settings"
    
  2. RootDirURL.adm などのわかりやすい名前を使用してファイルを保存します。

    • ファイル名拡張子が .txt ではなく、.adm になっていることを確認してください。

    • ファイル名拡張子の表示を有効にしていない場合は、ファイル名拡張子を表示する方法に関するページをご覧ください。

    • %windir%\inf フォルダーにファイルを保存すると、後の手順で簡単に見つけることができます。

  3. グループ ポリシー管理エディターを開きます。 [開始] > [実行] を選択し、「GPMC.msc」と入力し、Enter キーを押します。

    警告

    新しい GPO をドメインまたは組織単位 (OU) にリンクすることができます。 このドキュメントで実行されている GPO の変更は、適用先のコンピューターのレジストリ設定を変更します。 GPO を削除するか、GPO とのリンクを解除することによって、これらの設定を元に戻すことはできません。 この設定を元に戻すには、GPO の設定を元に戻すか、別の方法でレジストリを変更する方法しかありません。

  4. フォレスト オブジェクト、ドメイン オブジェクトの順に展開し、変更するコンピューター アカウントが含まれている特定のドメインを展開します。 特定の OU を変更する場合は、その場所に移動します。

  5. 右クリックして [このドメインに GPO を作成し、このコンテナーにリンクします] を選択して新しい GPO を作成します。

  6. ナビゲーション ウィンドウの [コンピューターの構成][ポリシー] を展開します。

  7. [管理用テンプレート] を右クリックし、[テンプレートの追加と削除] を選択します。

  8. [テンプレートの追加と削除] で、[追加] を選択します。

  9. [ポリシー テンプレート] ダイアログ ボックスで、前の手順で保存した .adm テンプレートを選択します。 [開く] を選択し、[閉じる] を選択します。

  10. ナビゲーション ウィンドウで、[管理用テンプレート] を展開し、[従来の管理用テンプレート (ADM)] を展開します。

  11. [Windows AutoUpdate Settings] (Windows の自動更新の設定) を選択し、詳細ペインで [URL address to be used instead of default ctldl.windowsupdate.com] (既定の ctldl.windowsupdate.com の代わりに使用する URL アドレス) を選択します。

  12. [Enabled] を選択します。 [オプション] で、CTL ファイルを格納するファイル サーバーまたは Web サーバーの URL を入力します。 たとえば、http://server1/CTL または file://\\server1\CTL です。

  13. [OK] を選択します。

  14. グループ ポリシー管理エディターを閉じます。

ポリシーはすぐに有効になりますが、新しい設定を受信するにはクライアント コンピューターを再起動する必要があります。または、管理者特権のコマンド プロンプトや Windows PowerShell から「gpupdate /force」と入力することもできます。

重要

信頼された CTL と信頼されていない CTL は毎日更新できるため、スケジュールされたタスクやその他の方法 (エラー状態を処理するスクリプトなど) で常にファイルを同期し、共有フォルダーや Web 仮想ディレクトリを更新していることを確認します。 PowerShell を使用してスケジュールされたタスクを作成する方法の詳細については、「New-ScheduledTask」を参照してください。 毎日情報を更新するためのスクリプトを作成する場合は、Windows コマンド リファレンス「certutil」を参照してください。

信頼されていない CTL についてのみ Microsoft の自動更新の URL をリダイレクトする

一部の組織では、(信頼された CTL ではなく) 信頼されていない CTL のみを自動的に更新することが必要になる場合があります。 信頼されていない CTL のみを自動的に更新するには、グループ ポリシーに追加する 2 つの .adm テンプレートを作成します。

インターネットに接続されていない環境では、前の手順 (信頼された CTL と信頼されていない CTL について、Microsoft の自動更新の URL をリダイレクトする) と共に次の手順を実行できます。 この手順では、信頼された CTL の自動更新を選択的に無効にする方法について説明します。

また、分離された接続環境でこの手順を使用して、信頼された CTL の自動更新を選択的に無効にすることもできます。

信頼されていない CTL のみを選択的にリダイレクトするには

  1. ドメイン コントローラーで、テキスト ファイルとして作成した後、ファイル名拡張子を .adm に変更して、最初の新しい管理用テンプレートを作成します。 このファイルの内容は次のようになります。

    CLASS MACHINE
    CATEGORY !!SystemCertificates
        KEYNAME "Software\Policies\Microsoft\SystemCertificates\AuthRoot"
        POLICY !!DisableRootAutoUpdate
           EXPLAIN !!Certificates_config
           VALUENAME "DisableRootAutoUpdate"
           VALUEON NUMERIC 0
              VALUEOFF NUMERIC 1
    
        END POLICY
    END CATEGORY
    [strings]
    DisableRootAutoUpdate="Auto Root Update"
    Certificates_config="By default automatic updating of the trusted CTL is enabled. To disable the automatic updating trusted CTLe, select Disabled."
    SystemCertificates="Windows AutoUpdate Settings"
    
  2. DisableAllowedCTLUpdate.adm などのわかりやすい名前を使用してファイルを保存します。

  3. 2 番目の新しい管理用テンプレートを作成します。 このファイルの内容は次のようになります。

    CLASS MACHINE
    CATEGORY !!SystemCertificates
        KEYNAME "Software\Policies\Microsoft\SystemCertificates\AuthRoot"
        POLICY !!EnableDisallowedCertAutoUpdate
           EXPLAIN !!Certificates_config
           VALUENAME "EnableDisallowedCertAutoUpdate"
           VALUEON NUMERIC 1
              VALUEOFF NUMERIC 0
    
        END POLICY
    END CATEGORY
    [strings]
    EnableDisallowedCertAutoUpdate="Untrusted CTL Automatic Update"
    Certificates_config="By default untrusted CTL automatic update is enabled. To disable trusted CTL update, select Disabled."
    SystemCertificates="Windows AutoUpdate Settings"
    
  4. EnableUntrustedCTLUpdate.adm などのわかりやすいファイル名を使用してファイルを保存します。

    • これらのファイルの拡張子が .txt ではなく、.adm になっていることを確認します。

    • %windir%\inf フォルダーにファイルを保存すると、後の手順で簡単に見つけることができます。

  5. グループ ポリシー管理エディターを開きます。

  6. フォレスト オブジェクト、ドメイン オブジェクトの順に展開し、変更するコンピューター アカウントが含まれている特定のドメインを展開します。 特定の OU を変更する場合は、その場所に移動します。

  7. ナビゲーション ウィンドウの [コンピューターの構成][ポリシー] を展開します。

  8. [管理用テンプレート] を右クリックし、[テンプレートの追加と削除] を選択します。

  9. [テンプレートの追加と削除] で、[追加] を選択します。

  10. [ポリシー テンプレート] ダイアログ ボックスで、前の手順で保存した .adm テンプレートを選択します。 [開く] を選択し、[閉じる] を選択します。

  11. ナビゲーション ペインで、[管理用テンプレート] を展開し、[従来の管理用テンプレート (ADM)] を展開します。

  12. [Windows AutoUpdate Settings] (Windows の自動更新の設定) を選択し、詳細ペインで [自動ルート更新] をダブルクリックします。

  13. 無効を選択し、 [OK] を選択します。

  14. 詳細ペインで、[Untrusted CTL Automatic Update] (信頼されていない CTL の自動更新) をダブルクリックし、[有効][OK] を選択します。

ポリシーはすぐに有効になりますが、新しい設定を受信するにはクライアント コンピューターを再起動する必要があります。または、管理者特権のコマンド プロンプトや Windows PowerShell から「gpupdate /force」と入力することもできます。

重要

信頼された CTL と信頼されていない CTL は毎日更新できるため、スケジュールされたタスクやその他の方法で常にファイルを同期し、共有フォルダーや仮想ディレクトリを更新していることを確認します。

信頼された CTL のサブセットを使用する

ここでは、組織内のコンピューターで使用する、信頼された CTL を生成、確認、フィルター処理する方法について説明します。 この解決方法を使用するには、前の手順で説明している GPO を実装する必要があります。 この解決方法は、インターネットに接続されていない環境と接続された環境で利用できます。

信頼された CTL の一覧をカスタマイズするには、2 つの手順があります。

  1. 信頼された証明書のサブセットを作成する

  2. グループ ポリシーを使用して信頼された証明書を配布する

信頼された証明書のサブセットを作成するには

ここでは、Windows から Windows の自動更新メカニズムを使用して SST ファイルを生成する方法を示します。 SST ファイルの生成の詳細については、Windows コマンド リファレンス「Certutil」を参照してください。

  1. インターネットに接続されたコンピューターで、管理者として Windows PowerShell を開くか、管理者特権のコマンド プロンプトを開いて、次のコマンドを入力します。

    Certutil -generateSSTFromWU WURoots.sst
    
  2. エクスプローラーで次のコマンドを実行して、WURoots.sst を開きます。

    start explorer.exe wuroots.sst
    

    ヒント

    Internet Explorer を使用してこのファイルに移動し、ダブルクリックして開くこともできます。 ファイルを格納した場所によって、「 wuroots.sst」と入力することによって開くことができる場合もあります。

  3. 証明書マネージャーを開きます。

  4. [証明書 - 現在のユーザー] の下の [証明書] が表示されるまでファイル パスを展開し、[証明書] を選択します。

  5. 詳細ウィンドウで、信頼された証明書を確認できます。 CTRL キーを押しながら、許可する証明書をそれぞれクリックします。 許可する証明書の選択が完了したら、選択した証明書の 1 つを右クリックし、[すべてのタスク][エクスポート] の順にクリックします。

    • .sst ファイルをエクスポートするには、少なくとも 2 つの証明書を選択する必要があります。 証明書を 1 つだけ選択した場合、.sst ファイルの種類は使用できず、代わりに .cer ファイルの種類が選択されます。
  6. 証明書のエクスポート ウィザードで、[次へ] を選択します。

  7. [エクスポート ファイルの形式] ページで、[Microsoft シリアル化された証明書ストア (.SST)] を選択し、[次へ] を選択します。

  8. [エクスポートするファイル] ページで、ファイル パスと適切なファイル名 (C:\AllowedCerts.sst など) を入力し、[次へ]をクリックします。

  9. [完了] を選択します。 正常にエクスポートされたことを示すメッセージが表示されたら、[OK] を選択します。

  10. 作成した .sst ファイルをドメイン コントローラーにコピーします。

グループ ポリシーを使用して信頼された証明書の一覧を配布するには

  1. カスタマイズされた .sst ファイルがあるドメイン コントローラーで、グループ ポリシー管理エディターを開きます。

  2. [フォレスト][ドメイン]、変更する特定のドメイン オブジェクトの順に展開します。 [既定のドメイン ポリシー] GPO を右クリックし、[編集] を選択します。

  3. ナビゲーション ペインで、[コンピューターの構成][ポリシー][Windows の設定][セキュリティの設定][公開キーのポリシー] の順に展開します。

  4. [信頼されたルート証明機関] を右クリックし、[インポート] を選択します。

  5. 証明書のインポート ウィザードで、[次へ] を選択します。

  6. このドメイン コントローラーにコピーしたファイルのパスとファイル名を入力するか、[参照] ボタンを使用してファイルを選択します。 [次へ] を選択します。

  7. [次へ] を選択して、[信頼されたルート証明機関] の証明書ストアにこれらの証明書を配置することを確認します。 [終了] を選択します。 証明書が正常にインポートされたことを示すメッセージが表示されたら、[OK] を選択します。

  8. グループ ポリシー管理エディターを閉じます。

ポリシーはすぐに有効になりますが、新しい設定を受信するにはクライアント コンピューターを再起動する必要があります。または、管理者特権のコマンド プロンプトや Windows PowerShell から「gpupdate /force」と入力することもできます。

変更されたレジストリ設定

このドキュメントで説明している設定は、クライアント コンピューターの次のレジストリ キーを構成します。 GPO がドメインからリンク解除された場合や、ドメインから削除された場合、これらの設定は自動的には削除されません。 これらの設定を変更する場合は、再構成する必要があります。

  • 信頼された CTL の Windows の自動更新を有効または無効にします。

    • キー: HKLM\SOFTWARE\Policies\Microsoft\SystemCertificates\AuthRoot\DisableRootAutoUpdate
    • : REG_DWORD
    • 名前: DisableRootAutoUpdate
    • データ: 有効にする場合は 0、無効にする場合は 1
    • 既定値: 既定ではキーは存在しません。 キーが存在しない場合、既定値が有効になります。
  • 信頼されていない CTL の Windows の自動更新を有効または無効にします。

    • キー: SOFTWARE\Policies\Microsoft\SystemCertificates\AuthRoot
    • : REG_DWORD
    • 名前: EnableDisallowedCertAutoUpdate
    • データ: 有効にする場合は 1、無効にする場合は 0
    • 既定値: 既定ではキーは存在しません。 キーが存在しない場合、既定値が有効になります。
  • 共有 CTL ファイルの場所 (HTTP または FILE パス) を設定します。

    • キー: HKLM\SOFTWARE\Microsoft\SystemCertificates\AuthRoot\AutoUpdate\RootDirUrl
    • : REG_SZ
    • 名前: RootDirUrl
    • データ: 有効な HTTP またはファイル URI を入力します。
    • 既定値: 既定ではキーは存在しません。 キーが存在しない場合、Windows Update によって既定の動作が使用されます。

信頼された CTL と信頼されていない CTL を確認する

さまざまな理由により、クライアント マシンから信頼された CTL と信頼されていない CTL をすべて確認することが必要になる場合があります。 次の Certutil オプションを使用して、クライアント マシンからすべての信頼された CTL と信頼されていない CTL を確認できます。

certutil -verifyCTL AuthRoot
certutil -verifyCTL Disallowed

最終同期時刻の確認

信頼された CTL または信頼されていない CTL のローカル マシンで最新の同期時刻を確認するには、次の Certutil コマンドを実行します。

certutil -verifyctl AuthRoot | findstr /i "lastsynctime"
certutil -verifyctl Disallowed | findstr /i "lastsynctime"