Windows Server 2016 の AD FS と WAP で TLS/SSL 証明書を管理する

この記事では、新しい TLS/SSL 証明書を Active Directory フェデレーション サービス (AD FS) および Web アプリケーション プロキシ (WAP) サーバーにデプロイする方法について説明します。

Note

AD FS ファームで今後 TLS SSL 証明書を置き換える場合は、Microsoft Entra Connect を使用することをお勧めします。 詳細については、Active Directory フェデレーション サービス (AD FS) ファームの TLS/SSL 証明書の更新に関するページを参照してください。

TLS/SSL 証明書を取得する

運用 AD FS ファームの場合は、公的に信頼されている TLS/SSL 証明書の使用をお勧めします。 AD FS は、サードパーティの公開証明書プロバイダーに証明書署名要求 (CSR) を送信することで、この証明書を取得します。 Windows 7 以降の PC からなど、CSR を生成するさまざまな方法があります。 ご利用のベンダーがこのプロセスに関するドキュメントを持っているはずです。

必要な証明書

すべての AD FS および WAP サーバーで共通の TLS/SSL 証明書を使用する必要があります。 要件の詳細については、「AD FS と Web アプリケーション プロキシの TLS/SSL 証明書の要件」を参照してください。

TLS/SSL 証明書の要件

信頼のルートや拡張機能の命名などの要件については、「AD FS と Web アプリケーション プロキシの TLS/SSL 証明書の要件」を参照してください。

AD FS の TLS/SSL 証明書の置き換え

Note

AD FS TLS/SSL 証明書は、AD FS 管理スナップインで見つかる AD FS サービス通信証明書と同じではありません。 AD FS TLS/SSL 証明書を変更するには、PowerShell を使用する必要があります。

まず、AD FS サーバーで既定の証明書認証バインド モードを実行するか、代替クライアント TLS バインド モードを実行するかを決定します。

既定の証明書認証バインド モードで実行されている AD FS の TLS/SSL 証明書の置き換え

AD FS は、規定ではポート 443 でデバイス証明書の認証を実行し、ポート 49443 (または 443 以外の構成可能なポート) でのユーザー証明書認証を実行します。 このモードでは、PowerShell コマンドレット Set-AdfsSslCertificate を使用して、次の手順に示すように TLS/SSL 証明書を管理します。

  1. まず、新しい証明書を取得する必要があります。 これを取得するには、サードパーティの公開証明書プロバイダーに証明書署名要求 (CSR) を送信します。 Windows 7 以降のコンピュータからなど、CSR を生成するさまざまな方法があります。 ご利用のベンダーがこのプロセスに関するドキュメントを持っているはずです。

  2. 証明書プロバイダーから応答を受け取ったら、各 AD FS および WAP のローカル コンピューター ストアにインポートします。

  3. プライマリ AD FS サーバーで、次のコマンドレットを使用して、新しい TLS/SSL 証明書をインストールします。

Set-AdfsSslCertificate -Thumbprint '<thumbprint of new cert>'

証明書の拇印は、このコマンドを実行することで見つけることができます。

dir Cert:\LocalMachine\My\

代替 TLS バインド モードで実行されている AD FS の TLS/SSL 証明書の置き換え

代替クライアント TLS バインド モードで構成されている場合、AD FS はポート 443 でデバイス証明書認証を実行します。 また、ポート 443 で別のホスト名でユーザー証明書認証を実行します。 ユーザー証明書のホスト名は、certauth.fs.contoso.com など、先頭に certauth が付けられた AD FS ホスト名です。 このモードでは、PowerShell コマンドレット Set-AdfsAlternateTlsClientBinding を使用して、TLS/SSL 証明書を管理します。 このコマンドレットは、代替のクライアント TLS バインドだけでなく、AD FS で TLS/SSL 証明書も設定するその他のすべてのバインドも管理します。

代替 TLS バインド モードで実行されている AD FS の TLS/SSL 証明書を置き換えるには、次の手順に従います。

  1. まず、新しい証明書を取得する必要があります。 これを取得するには、サードパーティの公開証明書プロバイダーに証明書署名要求 (CSR) を送信します。 Windows 7 以降のコンピュータからなど、CSR を生成するさまざまな方法があります。 ご利用のベンダーがこのプロセスに関するドキュメントを持っているはずです。

  2. 証明書プロバイダーから応答を受け取ったら、各 AD FS および WAP のローカル コンピューター ストアにインポートします。

  3. プライマリ AD FS サーバーで、次のコマンドレットを使用して、新しい TLS/SSL 証明書をインストールします。

Set-AdfsAlternateTlsClientBinding -Thumbprint '<thumbprint of new cert>'

証明書の拇印は、このコマンドを実行することで見つけることができます。

dir Cert:\LocalMachine\My\

既定の証明書認証バインドと代替 TLS バインド モードでの TLS/SSL 証明書に関するその他の考慮事項

  • Set-AdfsSslCertificate コマンドレットと Set-AdfsAlternateTlsClientBinding コマンドレットはマルチノード コマンドレットであるため、プライマリから実行する必要があるだけです。 コマンドレットは、ファーム内のすべてのノードも更新します。 この変更は、Server 2016 で新たに加えられたものです。 Server 2012 R2 では、各サーバーでコマンドレットを実行する必要がありました。
  • Set-AdfsSslCertificate コマンドレットと Set-AdfsAlternateTlsClientBinding コマンドレットは、プライマリ サーバーでのみ実行する必要があります。 プライマリ サーバーは Server 2016 を実行する必要があり、ファームの動作レベルを 2016 に上げる必要があります。
  • Set-AdfsSslCertificate および Set-AdfsAlternateTlsClientBinding コマンドレットは、PowerShell リモート処理を使用して他の AD FS サーバーを構成し、他のノードでポート 5985 (TCP) が開いていることを確認します。
  • Set-AdfsSslCertificate および Set-AdfsAlternateTlsClientBinding コマンドレットは、TLS/SSL 証明書の秘密キーに対して、 adfssrv プリンシパル読み取りアクセス許可を付与します。 このプリンシパルは AD FS サービスを表します。 AD FS サービス アカウントに、TLS/SSL 証明書の秘密キーへの読み取りアクセス権を付与する必要はありません。

Web アプリケーション プロキシの TLS/SSL 証明書の置き換え

WAP で既定の証明書認証バインドと代替クライアント TLS バインド モードの両方を構成する場合は、Set-WebApplicationProxySslCertificate コマンドレットを使用できます。 各 WAP サーバーの WAP TLS/SSL 証明書を置き換えるには、次のコマンドレットを使用して新しい TLS/SSL 証明書をインストールします。

Set-WebApplicationProxySslCertificate -Thumbprint '<thumbprint of new cert>'

古い証明書が既に有効期限切れで上記のコマンドレットが失敗した場合は、次のコマンドレットを使用してプロキシを再構成します。

$cred = Get-Credential

AD FS サーバーのローカル管理者であるドメイン ユーザーの資格情報を入力します

Install-WebApplicationProxy -FederationServiceTrustCredential $cred -CertificateThumbprint '<thumbprint of new cert>' -FederationServiceName 'fs.contoso.com'