次の方法で共有


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

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

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

TLS/SSL 証明書を取得する

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

必要な証明書

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

TLS/SSL 証明書の要件

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

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

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) を送信します。 CSR を生成するには、Windows 7 以降のコンピューターを含め、さまざまな方法があります。 ベンダーには、このプロセスに関するドキュメントが必要です。

  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など、certauth.fs.contoso.comで付加された AD FS ホスト名です。 このモードでは、PowerShell コマンドレット Set-AdfsAlternateTlsClientBinding を使用して TLS/SSL 証明書を管理します。 このコマンドレットは、代替クライアント TLS バインドだけでなく、AD FS が TLS/SSL 証明書を設定するその他のすべてのバインドも管理します。

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

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

  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'