AD FS 2.0 事例紹介 「SSL サーバー証明書 (サービス通信証明書) 更新後のトラブル」

皆様、こんにちは。Windows プラットフォーム サポート担当の田中です。

今回も、「AD FS 2.0 サーバー」につきまして、よくお問い合わせいただきます事例をご紹介いたします。

AD FS 関連のお問い合わせとしては、証明書に関連するトラブルをお問い合わせいただくことが多くあります。
AD FS サーバーでは、SSL サーバー証明書 (サービス通信証明書)、トークン署名証明書、トークン暗号化解除証明書の 3 つの証明書を利用します。
今回は、その内の SSL サーバー証明書更新時に発生し得るトラブルについてご紹介いたします。

1) 問題の概要
AD FS サーバーの SSL サーバー証明書を更新した後から、AD FS Proxy サーバー経由の認証で問題が発生するようになった。
AD FS サーバーに直接アクセスする認証は問題ない。
AD FS Proxy サーバー上での AD FS サービス起動時や、AD FS Proxy サーバー経由の認証を行う際に、AD FS Proxy サーバー上で AD FS 2.0/Admin エラー ID: 275 や 364 が記録される。

2) 対処策
AD FS Proxy サーバーにて、AD FS サーバーが使用する SSL サーバー証明書を信頼している必要があります。
以下の流れで確認可能です。
1. AD FS Proxy サーバーにて [スタート] - [ファイル名を指定して実行] から mmc と入力し、[OK] をクリックします。
2. [ファイル] - [スナップインの追加と削除] を選択します。
3. [証明書] を選択し、[追加] をクリックします。
4. "コンピューター アカウント" を選択し、[次へ] - [完了] をクリックします。
5. [OK] をクリックします。
6. 左側から以下のストアを展開し、SSL サーバー証明書の発行元証明機関のルート証明書が含まれていることを確認ください。
[証明書 (ローカル コンピューター)] - [信頼されたルート証明機関] - [証明書]

含まれていない場合は同様の問題が発生し得ます。
その場合は [証明書 (ローカル コンピューター)] - [信頼されたルート証明機関] - [証明書] に SSL サーバー証明書の発行元証明機関のルート証明書をインポートする必要があります。

3) SSL サーバー証明書の更新手順
AD FS 2.0 サーバーにおける、SSL サーバー証明書入れ替えの一般的な作業は以下の通りです。

1. AD FS サーバーにて証明書の取得。
2. ルート証明書、中間証明書のインストール。
3. AD FS サーバーにて SSL サーバー証明書のインストール
4. AD FS サーバーにて SSL サーバー証明書のエクスポート
5. ファーム内の他の AD FS サーバーや AD FS Proxy サーバーにて SSL サーバー証明書のインストール
6. SSL サーバー証明書のアクセス権設定
7. SSL サーバー証明書のバインド
8. AD FS のサービス通信証明書へ SSL サーバー証明書を追加

以下にそれぞれの詳細な手順をご案内いたします。

1. AD FS サーバーにて証明書の取得。
ご利用になる認証機関から SSL サーバー証明書とルート証明書、中間証明書を取得します。
認証機関によって CSR 作成・送信、証明書受領手順が異なるため、手順は省略します。
なお、ご参考までに、CSR 作成手順として IIS の標準機能を利用する手順を以下にご案内いたします。
1-1. AD FS サーバーにて [管理ツール] - [インターネット インフォメーション サービス (IIS) マネージャー] を開きます。
1-2. 左側から [サーバー名] を選択します。
1-3. 中央から [サーバー証明書] をダブルクリックします。
1-4. 右側から [証明書の要求の作成] をクリックします。
1-5. ウィザードに従い、CSR を作成します。

2. ルート証明書、中間証明書のインストール。
ご利用になる認証機関から取得したルート証明書、中間証明書を以下手順でインストールします。(既にインストール済みの場合は必要ありません。)
2-1. AD FS サーバー、AD FS Proxy サーバーにて [スタート] - [ファイル名を指定して実行] から mmc と入力し、[OK] をクリックします。
2-2. [ファイル] - [スナップインの追加と削除] を選択します。
2-3. [証明書] を選択し、[追加] をクリックします。
2-4. "コンピューター アカウント" を選択し、[次へ] - [完了] をクリックします。
2-5. [OK] をクリックします。
2-6. 左側から以下のストアを展開します。
[証明書 (ローカル コンピューター)] - [信頼されたルート証明機関] - [証明書]

2-7. [証明書] を右クリックし、[すべてのタスク] - [インポート] を選択し、ウィザードに従って SSL サーバー証明書の発行元証明機関のルート証明書をインストールします。
2-8. また、続けて、左側から以下のストアを展開します。
[証明書 (ローカル コンピューター)] - [中間証明機関] - [証明書]

2-9. [証明書] を右クリックし、[すべてのタスク] - [インポート] を選択し、ウィザードに従って SSL サーバー証明書の発行元証明機関の中間証明書をインストールします。
※インポートする中間証明書の有無や数は、ご利用の認証機関によって異なります。

3. AD FS サーバーにて SSL サーバー証明書のインストール
CSR 作成手順によって異なりますため、手順は省略します。
なお、ご参考までに、CSR 作成手順として IIS の標準機能を利用した場合のインストール手順を以下にご案内いたします。
3-1. AD FS サーバーにて [管理ツール] - [インターネット インフォメーション サービス (IIS) マネージャー] を開きます。
3-2. 左側から [サーバー名] を選択します。
3-3. 中央から [サーバー証明書] をダブルクリックします。
3-4. 右側から [証明書の要求の完了] をクリックします。
3-5. ウィザードに従い、証明書をインストールします。

4. AD FS サーバーにて SSL サーバー証明書のエクスポート
ファーム内の他の AD FS サーバーや AD FS Proxy サーバーに同じ証明書をインストールするため、手順 3. を実施した AD FS サーバーにてインストールした証明書をエクスポートします。
4-1. AD FS サーバーにて [管理ツール] - [インターネット インフォメーション サービス (IIS) マネージャー] を開きます。
4-2. 左側から [サーバー名] を選択します。
4-3. 中央から [サーバー証明書] をダブルクリックします。
4-4. AD FS サーバーでインストールした証明書を右クリックし、[エクスポート] を選択します。
4-5. エクスポート先とパスワードを指定し、エクスポートします。

5. ファーム内の他の AD FS サーバーや AD FS Proxy サーバーにて SSL サーバー証明書のインストール
ファーム内の他の AD FS サーバーや AD FS Proxy サーバーに同じ証明書をインストールします。
5-1. AD FS サーバーおよび AD FS Proxy サーバーにて [管理ツール] - [インターネット インフォメーション サービス (IIS) マネージャー] を開きます。
5-2. 左側から [サーバー名] を選択します。
5-3. 中央から [サーバー証明書] をダブルクリックします。
5-4. 右側から [インポート] をクリックします。
5-5. 手順 4. でエクスポートしたファイルとパスワードを指定し、インストールします。
※"この証明書のエクスポートを許可する" はチェックされた状態で問題ありません。

6. SSL サーバー証明書のアクセス権設定
証明書に AD FS サービス アカウントに必要なアクセス許可を付与します。
6-1. AD FS サーバーにて [スタート] - [ファイル名を指定して実行] から mmc と入力し、[OK] をクリックします。
6-2. [ファイル] - [スナップインの追加と削除] を選択します。
6-3. [証明書] を選択し、[追加] をクリックします。
6-4. "コンピューター アカウント" を選択し、[次へ] - [完了] をクリックします。
6-5. [OK] をクリックします。
6-6. 左側から以下のストアを展開します。
[証明書 (ローカル コンピューター)] - [個人] - [証明書]

6-7. 中央から、インストールした SSL サーバー証明書を右クリックして、[すべてのタスク] - [秘密キーの管理] をクリックします。
※ [秘密キーの管理] を実行できない場合は、次のコマンドを実行してください。
このコマンドを実行することにより、個人ストアのすべての証明書のキーの関連付けの修復、または証明書プロパティやキーのセキュリティ記述子の更新を行います

certutil -repairstore my *

6-8. AD FS サービスを実行しているアカウントを [追加] して、アカウントには、少なくとも読み取りアクセス許可を付与します。
※ AD FS サービスを実行しているアカウントは、[管理ツール] - [サービス] から、[AD FS 2.0 Windows サービス] の "ログオン" 欄から確認できます。

7. SSL サーバー証明書のバインド
IIS に SSL サーバー証明書をバインドします。
7-1. AD FS サーバー、AD FS Proxy サーバーにて [管理ツール] - [インターネット インフォメーション サービス (IIS) マネージャー] を開きます。
7-2. 左側から [サーバー名] - [サイト] - [Default Web Site] を右クリックし、[バインドの編集] を選択します。
7-3. "種類" が https のエントリを選択し、[編集] をクリックします。
7-4. "SSL 証明書" 欄からインストールした証明書を選択し、[OK] をクリックします。
7-5. [閉じる] をクリックして画面を閉じます。

8. AD FS のサービス通信証明書へ SSL サーバー証明書を追加
AD FS のサービス通信証明書へ SSL サーバー証明書を追加します。
8-1. プライマリ AD FS サーバーにて [管理ツール] - [AD FS 2.0 の管理] を選択します。
8-2. 左側から [サービス] - [証明書] を右クリックし、 [サービス通信証明書の設定] をクリックします。
8-3. 証明書の選択画面から新しい証明書を選択します。
8-4. [OK] をクリックします。
※ 警告が表示される場合は、[はい] をクリックします。

4) 参考資料
タイトル: How to change the ADFS 2.0 service communications certificate after it expires
URL: https://support.microsoft.com/kb/2504439/

タイトル: AD FS 2.0: How to Replace the SSL, Service Communications, Token-Signing, and Token-Decrypting Certificates
URL: https://social.technet.microsoft.com/wiki/contents/articles/2554.ad-fs-2-0-how-to-replace-the-ssl-service-communications-token-signing-and-token-decrypting-certificates.aspx

「コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。」