2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

リモートデスクトップ接続用の証明書を展開する

Last updated at Posted at 2024-12-31

はじめに

リモートデスクトップ用に 証明書をちゃんと配ろうとすると、中々やっかいです。
世の中に、さまざまな情報があって、どれを実施すれば良いのか見定めるのが難しかったりします。

この機会に、なるべく、シンプルに わかりやすく 纏めておこうと思いました。

以下の記事に、比較的新しめで まとまった記事がありましたので、今回は これを踏襲して構成した手順を紹介したいと思います。

Remote Desktop Services enrolling for TLS certificate from an Enterprise CA

公開情報:Using certificates in Remote Desktop Services


この記事の手順で 実現できること

  • リモートデスクトップ接続 を行う際に表示される 証明書 の確認画面が表示されないようにする(Before -> After)
  • ドメイン全体で機能するようにする
  • リモートデスクトップの上部のバーに、鍵マークが表示される

image.png


この記事のポイント

  • リモートデスクトップ接続の 証明書確認 の画面を抑止する決定版を目指す
  • RDS の役割ではなく、単なる クライアントのリモートデスクトップでテストが出来る
  • 証明書とリモートデスクトップサービス のみに着目して、トラシューしやすくする
  • Before / After を判りやすくする

リモートデスクトップ接続 の 証明書 の話は、RDS の役割サービス と一緒に出てくることが多く、全体を見てしまうと判りづらくなってしまうので、これを 切り離して考えられるようにしています。


前提事項

  • Active Directory ドメイン (AD DS) が構成されていること
    これから構築する場合は、以下の記事を参考にしてください。

  • 上記のドメイン内に エンタープライズ CA が展開されていること
    これから構築する場合は、以下の記事を参考にしてください。

  • ドメイン内の任意のホストで、リモートデスクトップ接続が可能になっていること
    クライアント OS でも、メンバーサーバーでも、構いません。
    このホストを、あとで 接続のテスト に使います。
    ※前章の Before の状態で RDP 接続ができるようになっていれば OK です。
(参考)RDP 有効化手順を見るには、ココ を押してください

RDP 接続先ホストの ローカル Remote Desktop Users グループに、RDP 接続をさせたい ユーザー・グループ を追加します。ここで、追加したアカウントのみが RDP する事ができます。
※認証した 全ユーザーを 対象にするには Authenticated Users を追加します。

  1. リモートデスクトップ を オン にして、リモートデスクトップ ユーザー を選択します。
    image.png
     
  2. 以下の画面で 追加 を押します。
    image.png
     
  3. 選択するオブジェクト名を入力してください の欄に、Authenticated Users または 許可したい グループ や ユーザー名 を入力して名前の確認 を押します。赤下線のような表示になったら、OK を押します。
    ※Authenticated Users が確認出来ない場合は、場所 をドメインではなくローカルに変更します。
    image.png
     
  4. 一覧に 追加したユーザーが表示されている事を確認して OK を押します。
    image.png

ポイント
上記まで構成したら、パスワードを使って RDP 接続が成功するまでを 動作確認しておきましょう。ここでダメなら、RDP の問題です。

※RDP 自体の問題なのか、証明書の問題なのか 切り分けできるようにしておきます。

注意事項
PoC であれば、AD DS と同一のサーバー上に AD CS を展開する事も可能です。
運用環境の場合は、今後の AD DS のマイグレーションなども考慮して、AD DS と AD CS は、別々のサーバー上に展開することが推奨されています。


構築手順

手順は、2ステップで完了します。

  1. 証明書テンプレートの構成(AD CS サーバーで作業)
    → リモートデスクトップのための証明書テンプレートを定義します。
  2. グループポリシーの構成(AD DS サーバーで作業)
    → GPO を使って、定義したテンプレートを元にして、ドメイン内のホストに展開します。

1. 証明書テンプレートの構成

(AD CS サーバー上で作業)

  1. CertTmpl.msc (証明書テンプレート MMC) を検索して起動します。
    image.png
     
  2. コンピューター という名前のテンプレートを見つけて右クリックし テンプレートの複製 を選択します。
    image.png
     
  3. 互換性 タブで、"証明機関" と "証明書の受信者" 欄のドロップダウンリストを選択していきます。これは、これから作成するテンプレートの元となるバージョンを選択しています。
    image.png
     
    証明機関 の欄で Windows Server 2012 R2 を選ぶと、以下のウィンドウが開くため、OK します(2012R2 を選択したおかげで、新しい機能が利用できるテンプレートとなりました)
    image.png
     
    証明書の受信者 の欄で Windows 8.1/Windows Server 2012 R2 を選ぶと、以下のウィンドウが開くため、OK します(8.1/2012 R2 を選択したおかげで、新しい機能が利用できるテンプレートとなりました)
    image.png
     
    以下の状態になれば OK です。
    image.png
     
  4. 続いて 全般 タブで、テンプレートに名前と有効期間を指定する必要があります。
  • テンプレートの表示名フィールドにわかりやすい名前を入力します(日本語も可)
  • テンプレート名は、テンプレートを識別するための文字列を入力します(英数字 空白なし)
  • 有効期間を変更したい場合は、変更することも可能です。
  • [Active Directory で証明書を公開する]ボックスは チェックしない でください。
    image.png

ポイント
同様のノウハウが示された記事では、"Active Directory の証明書を発行する" にチェックを入れているケースもありますが、本記事では チェック は入れずに GPO を使って配布させています。

5.続いて 拡張機能 タブで、アプリケーション ポリシー を変更します。
ここでは、複製元にした "コンピューター" というテンプレートの設定を修正し、"リモートデスクトップ" 用に構成しなおしています。

5-a. アプリケーション ポリシー を選択し、編集 ボタンをクリックします。

5-b. クライアント認証とサーバー認証を選択して、削除 ボタンをクリックします。

5-c. リモート デスクトップ認証のアプリケーション ポリシーを追加するために 追加 ボタンをクリックします。

5-d. リモート デスクトップ認証アプリケーション ポリシーは、一覧にありません。
新規に作成するために 新規 ボタンを押してください。

5-e. 名前リモートデスクトップ認証 と入力し、オブジェクト識別子 (OID) の値に1.3.6.1.4.1.311.54.1.2 と入力して、OK ボタンをクリックします。

※この識別子(OID) が、リモートデスクトップ用の証明書であることを示しています。

5-f. アプリケーションポリシーの一覧に リモートデスクトップ認証 が加わったので、それを選択して OK ボタンを押します。

5-g. アプリケーションポリシーに リモート デスクトップ認証 が設定されたことを確認し、OK ボタンを押します。

5-h. 以下のように アプリケーションポリシーの説明欄 に、リモートデスクトップ認証 が表示されていれば OK です。

6.権限を適切に設定します。これを行うために セキュリティ タブをクリックします。

6-a. 証明書を登録する コンピューターまたはコンピューター グループを追加していきます。
権限は、登録 のみを選択します。

下図は、Domain Computers に対して、登録 を許可しています。

なお、Domain Computers の指定で、ドメインに参加したホストが対象となりますが、ドメインコントローラーは含まれていません。ドメイン内の全ホストが含まれるようにするために、Domain ControllersEnterprise Domain Controllers を追加して、それぞれ 登録 のみ許可します。

最終的に、以下のような状態になったら、OK ボタンをクリックして テンプレートの構成を終了します。

以上で リモートデスクトップ 用の証明書テンプレートが定義できました。
次章では、このテンプレートを使って、証明書を発行して配布するための GPO を構成していきます。


2. グループポリシーを構成する

(AD DS で作業)

  1. グループポリシー管理エディターを開き、ドメイン名 を右クリックして このドメインに GPO を作成し、このコンテナーにリンクする を選択します。
    ※ここでは、全ホストが配布対象となるために、ドメイン を選択していますが、別途 OU を用意して 個別の単位に適用することもできます。
    image.png
     
  2. GPO の名称を任意で指定して OK ボタンをクリックします。
    image.png
     
  3. 作成した GPO を右クリックして 編集 を選択します。
    image.png
     
  4. コンピューターの構成 - ポリシー - 管理用テンプレート - Windows コンポーネント を開きます。
    image.png
    続いて、リモートデスクトップ サービス - リモートデスクトップ セッション ホスト - セキュリティ を開き、サーバー認証証明書テンプレート の設定を開きます。
    image.png
     
  5. 有効 を選択し、証明書テンプレート名 には、前章で作成した テンプレート名 を入力してから OK ボタンをクリックします。
    image.png

注意
上記で指定する 証明書テンプレート名 の欄は、必ず、前章で設定した 下図の 緑枠 内の文字列と一字一句間違わずに指定する必要があります。

※スペルが間違えていると、証明書が発行されません。

6.下図のように 有効 となっていれば、OK です。
image.png

7.コマンドプロンプトを開き、gpupdate /force を実行し、保存したポリシーを適用させます。その後、リモートデスクトップ接続を行う PC 上でも、gpupdate /force を実行してください。
image.png


リモートデスクトップ接続を実行して確認する

1.リモートデスクトップ接続 (mstsc) を起動し、接続先の コンピューター名 を入力して 接続 ボタンをクリックします。
この欄には、IP アドレスではなく、ホスト名 を入力してください。
※証明書のチェックの際に、ホスト名との照合が行われるため。

2.ユーザー名 と パスワード で認証を行ったあと、直ちに 以下のように RDP が接続されれば OK です。 バーの 鍵マーク をクリックすることで 下記のウィンドウが表示されます。
image.png

エラー
引き続き、以下のように 証明書の確認画面 が出てしまう場合は、証明書が正しく発行されているか、次章のトラブルシューティングの章を参考に 再度 確認してください。

         ↓  ↓  ↓  ↓  ↓  ↓  ↓  ↓
IPアドレスが表示され、鍵マークが無い状態
image.png


トラブルシューティング

ドメイン内のホストには、ルート証明書 と サーバー証明書 が配布されているハズです。
ルート証明書は、接続元 で必要です。
サーバー証明書は、受け側 で必要です。

両方の証明書が、各ホストに配布されていることで、ドメイン内のホスト同士が 相互に リモートデスクトップ接続 をおこなう際に 証明書 が利用されることになります。

証明書の確認ウィンドウが表示されてしまう場合は、この証明書の配布がうまくいっていないか、証明書が リモートデスクトップサービスにバインドされていないか・・・が主な原因です。


証明書の配布状態を確認する

接続元、接続先 のホストで、ローカルコンピューターの証明書ストアを確認します。
certlm.msc を検索して、実行します。

ドメイン内の 各ホストには、以下のように 信頼されたルート証明機関 のストアに、ルート証明書 が配布されています。
この証明書は、リモートデスクトップ の接続元 になる場合に必要です。
image.png

ドメイン内の各ホストには、以下のように リモートデスクトップ のストアに 各ホストのコンピューター名(緑下線)の サーバー証明書 が配布されています。
この証明書は、リモートデスクトップ接続を受ける側として必要です。
image.png

詳細 タブで、証明書の詳細な値が確認できます。拇印 もココに記載されています。


証明書のバインド状態を確認する

以下の PowerShell コマンドを実行する事で リモートデスクトップサービスにバインドされた証明書を確認できます。

Get-WmiObject -Class "Win32_TSGeneralSetting" -Namespace Root\cimv2\Terminalservices  

前章で 証明書の 拇印 欄に表示されていた値と、下図の SSLCertificateSHA1Hash が同一の値であれば、証明書が リモートデスクトップサービスに正しくバインドされています。
image.png

もし、拇印SSLCertificateSHA1Hash の値に差異があった場合は問題です。
以下の公開情報に、バインドの確認方法や変更方法も記載されているため、問題解決して 一致させましょう。

公開情報:リモート デスクトップ リスナー証明書の構成
https://learn.microsoft.com/ja-jp/troubleshoot/windows-server/remote/remote-desktop-listener-certificate-configurations?wt.mc_id=mvp_407731

ポイント
オブジェクト識別子 (OID) が、1.3.6.1.4.1.311.54.1.2 という証明書が配布されていると、自動的に リモートデスクトップのストアに配置されます。
このストアに配置されていると、リモートデスクトップのサービスに 自動的にバインドされるようです。


参考

以下の記事も参考にしました。
内容を分析した結果、冒頭(はじめに)で紹介した記事がベストであると判断して、検証し 本記事を執筆しています。各記事を比較して、なぜ そういう設定にしているのかを検討してみると、より深い理解が得られます。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?