ネットワーク コントローラーの証明書を更新する
適用対象: Azure Stack HCI、バージョン 23H2 および 22H2。Windows Server 2022 および Windows Server 2019
この記事では、ネットワーク コントローラー証明書を更新または変更する方法について説明します(自動と手動の両方)。 ネットワーク コントローラー証明書の更新で問題が発生した場合は、Microsoft サポートにお問い合わせください。
ソフトウェア定義ネットワーク (SDN) インフラストラクチャの場合、ネットワーク コントローラーでは、証明書ベースの認証を使って、管理クライアントとの Northbound 通信チャネルと、ソフトウェア ロード バランサーなどのネットワーク デバイスとの Southbound 通信をセキュリティで保護します。 ネットワーク コントローラー証明書には有効期限があります。それを過ぎると無効になり、使う際に信頼できなくなります。 有効期限が切れる前に更新することを強くお勧めします。
ネットワーク コントローラーの概要については、「ネットワーク コントローラーとは」を参照してください。
ネットワーク コントローラー証明書を更新および変更するタイミング
ネットワーク コントローラー証明書は、次のようなときに更新または変更できます。
証明書の有効期限が近づいている。 有効期限が切れる前であれば、ネットワーク コントローラー証明書をいつでも更新できます。
注意
同じキーを使って既存の証明書を更新する場合は、すべて設定されるので、何も実行する必要はありません。
自己署名証明書を証明機関 (CA) 署名証明書に変更したい。
注意
証明書を変更する際には、必ず以前の証明書と同じサブジェクト名を使ってください。
ネットワーク コントローラー証明書の種類
Azure Stack HCI では、各ネットワーク コントローラー VM に 2 種類の証明書が使われます。
REST 証明書。 REST クライアント (Windows Admin Center など) との Northbound 通信と、Hyper-V ホストとソフトウェア ロード バランサーとの Southbound 通信用の 1 つの証明書。 この同じ証明書は、すべてのネットワーク コントローラー VM 上に存在します。 REST 証明書を更新するには、「REST 証明書を更新する」を参照してください。
ネットワーク コントローラー ノード証明書。 ノード間認証のための各ネットワーク コントローラー VM 上の証明書。 ネットワーク コントローラー ノード証明書を更新するには、「ノード証明書を更新する」を参照してください。
警告
これらの証明書を期限切れにしないでください。 認証の問題を回避するために、有効期限が切れる前に更新してください。 また、有効期限が切れた既存の証明書がある場合は、更新前に削除しないでください。 証明書の有効期限を確認するには、「証明書の有効期限を 表示する」を参照してください。
証明書の有効期限を確認する
証明書の有効期限を確認するには、各ネットワーク コントローラー VM 上で次のコマンドレットを使います。
Get-ChildItem Cert:\LocalMachine\My | where{$_.Subject -eq "CN=<Certificate-subject-name>"} | Select-Object NotAfter, Subject
REST 証明書の有効期限を取得するには、"Certificate-subject-name" をネットワーク コントローラーの RestIPAddress または RestName に置き換えます。 この値は
Get-NetworkController
コマンドレットから取得できます。ノード証明書の有効期限を取得するには、"Certificate-subject-name" をネットワーク コントローラー VM の完全修飾ドメイン名 (FQDN) に置き換えます。 この値は
Get-NetworkController
コマンドレットから取得できます。
ネットワーク コントローラー証明書を更新する
ネットワーク コントローラー証明書は、自動的または手動で更新できます。
Start-SdnCertificateRotation
コマンドレットを使用すると、ネットワーク コントローラー証明書の更新を自動化できます。 証明書の自動更新は、証明書の有効期限の問題が原因で発生するダウンタイムや計画外の停止を最小限に抑えるのに役立ちます。
コマンドレットを使用してネットワーク コントローラー証明書を Start-SdnCertificateRotation
自動的に更新できるシナリオを次に示します。
-
自己署名証明書。 コマンドレットを
Start-SdnCertificateRotation
使用して自己署名証明書を生成し、すべてのネットワーク コントローラー ノードでこれらの証明書を更新します。 -
[Bring your own certificates](独自の証明書を持ち込む) 。 自己署名証明書または CA 署名証明書のいずれかを独自に持ち込み、証明書の更新に コマンドレットを
Start-SdnCertificateRotation
使用します。 コマンドレットは、すべてのネットワーク コントローラー ノードに証明書をインストールし、他の SDN インフラストラクチャ コンポーネントに配布します。 -
プレインストールされた証明書。 ネットワーク コントローラー ノードに必要な証明書が既にインストールされています。 コマンドレットを
Start-SdnCertificateRotation
使用して、これらの証明書を他の SDN インフラストラクチャ コンポーネントに更新します。
SDN 証明書を作成および管理する方法の詳細については、「 ソフトウェア定義ネットワークの証明書を管理する」を参照してください。
要件
証明書の自動更新の要件を次に示します。
いずれかのネットワーク コントローラー ノードで コマンドレットを実行
Start-SdnCertificateRotation
する必要があります。 インストール手順については、 SdnDiagnostics モジュールのインストールに関するページを参照してください。ネットワーク コントローラー ノード間の通信を承認するには、次の 2 種類のアカウントの資格情報が必要です。
Credential
ネットワーク コントローラーでローカル管理者特権を持つユーザー アカウントを指定します。NcRestCredential
ネットワーク コントローラー REST API へのアクセス権を持つユーザー アカウントを指定します。 これは からGet-NetworkController
のClientSecurityGroup
メンバーです。 このアカウントは、REST API を呼び出して資格情報リソースを新しい証明書で更新するために使用されます。
ネットワーク コントローラーの Northbound 通信の承認の構成の詳細については、「Northbound 通信の 承認 」を参照してください。
自己署名証明書を自動的に更新する
コマンドレットを Start-SdnCertificateRotation
使用すると、新しい自己署名証明書を生成し、それらをすべてのネットワーク コントローラー ノードに自動的に更新できます。 既定では、コマンドレットは有効期間が 3 年の証明書を生成しますが、別の有効期間を指定できます。
いずれかのネットワーク コントローラー ノードで次の手順を実行して自己署名証明書を生成し、自動的に更新します。
自己署名証明書を生成するには、 コマンドレットを実行します
Start-SdnCertificateRotation
。 コマンドレットで パラメーターを-Force
使用すると、ローテーション プロセス中に確認または手動入力のプロンプトが表示されないようにすることができます。既定の 3 年間の有効期間で自己署名証明書を生成するには、次のコマンドを実行します。
Import-Module -Name SdnDiagnostics -Force Start-SdnCertificateRotation -GenerateCertificate -CertPassword (Get-Credential).Password -Credential (Get-Credential)
特定の有効期間を持つ自己署名証明書を生成するには、 パラメーターを
NotAfter
使用して有効期間を指定します。たとえば、有効期間が 5 年の自己署名証明書を生成するには、次のコマンドを実行します。
Import-Module -Name SdnDiagnostics -Force Start-SdnCertificateRotation -GenerateCertificate -CertPassword (Get-Credential).Password -NotAfter (Get-Date).AddYears(5) -Credential (Get-Credential)
資格情報を入力します。 次の 2 種類の資格情報を指定するように求める 2 つのプロンプトが表示されます。
- 最初のプロンプトで、生成された証明書を保護するためのパスワードを入力します。 ユーザー名は何でもかまいませんが、使用されません。
- 2 番目のプロンプトで、すべてのネットワーク コントローラー ノードへの管理者アクセス権を持つ資格情報を使用します。
新しい証明書が生成されると、証明書ローテーション プロセスを続行するかどうかを確認する警告が表示されます。 警告テキストには、新しく生成された証明書に置き換えられるネットワーク コントローラー証明書の一覧が表示されます。 「
Y
」と入力して確認します。警告のサンプル スクリーンショットを次に示します。
証明書のローテーションを続行することを確認したら、PowerShell コマンド ウィンドウで進行中の操作の状態を表示できます。
重要
コマンドレットが完了するまで PowerShell ウィンドウを閉じないでください。 クラスター内のネットワーク コントローラー ノードの数など、環境によっては、完了までに数分または 1 時間以上かかる場合があります。
実行中の操作の状態を示す PowerShell コマンド ウィンドウのサンプル スクリーンショットを次に示します。
独自の証明書を自動的に更新する
自己署名ネットワーク コントローラー証明書を生成するだけでなく、自己署名証明書または CA 署名証明書を持ち込み、 コマンドレットを Start-SdnCertificateRotation
使用して証明書を更新することもできます。
ネットワーク コントローラー ノードのいずれかで次の手順を実行して、独自の証明書を自動的に更新します。
証明書を形式で
.pfx
準備し、コマンドレットを実行するネットワーク コントローラー ノードの 1 つのフォルダーにStart-SdnCertificateRotation
保存します。 コマンドレットで パラメーターを-Force
使用すると、ローテーション プロセス中に確認または手動入力のプロンプトが表示されないようにすることができます。証明書の更新を開始するには、次のコマンドを実行します。
Import-Module -Name SdnDiagnostics -Force Start-SdnCertificateRotation -CertPath "<Path where you put your certificates>" -CertPassword (Get-Credential).Password -Credential (Get-Credential)
資格情報を入力します。 次の 2 種類の資格情報を指定するように求める 2 つのプロンプトが表示されます。
- 最初のプロンプトで、証明書のパスワードを入力します。 ユーザー名は何でもかまいませんが、使用されません。
- 2 番目のプロンプトで、すべてのネットワーク コントローラー ノードへの管理者アクセス権を持つ資格情報を使用します。
証明書のローテーション プロセスを続行するかどうかを確認する警告が表示されます。 警告テキストには、新しく生成された証明書に置き換えられるネットワーク コントローラー証明書の一覧が表示されます。 「
Y
」と入力して確認します。警告のサンプル スクリーンショットを次に示します。
証明書のローテーションを続行することを確認したら、PowerShell コマンド ウィンドウで進行中の操作の状態を表示できます。
重要
コマンドレットが完了するまで、PowerShell ウィンドウを閉じないでください。 クラスター内のネットワーク コントローラー ノードの数など、環境によっては、完了までに数分または 1 時間以上かかる場合があります。
プレインストールされた証明書を自動的に更新する
このシナリオでは、ネットワーク コントローラー ノードに必要な証明書がインストールされています。 コマンドレットを Start-SdnCertificateRotation
使用して、他の SDN インフラストラクチャ コンポーネントでこれらの証明書を更新します。
いずれかのネットワーク コントローラー ノードで次の手順を実行して、プレインストールされている証明書を自動的に更新します。
任意の方法に従って、すべてのネットワーク コントローラー ノードにネットワーク コントローラー証明書をインストールします。 証明書が、SDN MUX サーバーや SDN ホストなど、他の SDN インフラストラクチャ コンポーネントによって信頼されていることを確認します。
証明書ローテーションの構成Create:
既定の証明書ローテーション構成を生成するには、次のコマンドを実行します。
Import-Module -Name SdnDiagnostics -Force $certConfig = New-SdnCertificateRotationConfig $certConfig
既定の証明書ローテーション構成を確認して、自動検出された証明書が使用する証明書であるかどうかを確認します。 既定では、使用する最新の発行済み証明書が取得されます。
証明書ローテーション構成の例を次に示します。
PS C:\Users\LabAdmin> $certConfig Name Value ---- ----- ws22ncl.corp.contoso.com F4AAF14991DAF282D9056E147AE60C2C5FE80A49 ws22nc3.corp.contoso.com BC3E6B090E2AA80220B7BAED7F8F981A1E1DD115 ClusterCredentialType X509 ws22nc2.corp.contoso.corn 75DC229A8E61AD855CC445C42482F9F919CC1077 NcRestCert 029D7CA0067A60FB24827D8434566787114AC30C
各値の説明:
- ws22ncx.corp.contoso.com には、各ネットワーク コントローラー ノードの証明書の拇印が表示されます。
- ClusterCredentialType には、ネットワーク コントローラー クラスター認証の種類が表示されます。 認証の種類が X509 でない場合、ノード証明書は使用されておらず、出力には表示されません。
- NcRestCert には、ネットワーク コントローラー Rest 証明書の拇印が表示されます。
(省略可能)生成された
$certConfig
が正しくない場合は、新しい証明書の拇印を指定して変更できます。 たとえば、ネットワーク コントローラー Rest 証明書の拇印を変更するには、次のコマンドを実行します。$certConfig.NcRestCert = <new certificate thumbprint>
証明書のローテーションを開始します。 コマンドレットで パラメーターを
-Force
使用すると、ローテーション プロセス中に確認または手動入力のプロンプトが表示されないようにすることができます。Import-Module -Name SdnDiagnostics -Force Start-SdnCertificateRotation -CertRotateConfig $certConfig -Credential (Get-Credential)
資格情報の入力を求められたら、管理者がすべてのネットワーク コントローラー ノードにアクセスできる資格情報を入力します。
証明書の自動ローテーションを続行するかどうかを確認する警告が表示されます。 警告には、独自の証明書に置き換えられるネットワーク コントローラー証明書の一覧が表示されます。 「
Y
」と入力して確認します。証明書のローテーションの確認を求める警告のサンプル スクリーンショットを次に示します。
証明書のローテーションを続行することを確認したら、PowerShell コマンド ウィンドウで進行中の操作の状態を表示できます。
重要
コマンドレットが完了するまで、PowerShell ウィンドウを閉じないでください。 クラスター内のネットワーク コントローラー ノードの数など、環境によっては、完了までに数分または 1 時間以上かかる場合があります。
Windows Admin Centerで証明書を再インポートする
ネットワーク コントローラー REST 証明書を更新し、Windows Admin Centerを使用して SDN を管理している場合は、Windows Admin Centerから Azure Stack HCI クラスターを削除し、もう一度追加する必要があります。 これにより、Windows Admin Centerによって更新された証明書がインポートされ、SDN 管理に使用されるようになります。
更新された証明書をWindows Admin Centerに再インポートするには、次の手順に従います。
- Windows Admin Centerで、上部のドロップダウン メニューから [クラスター マネージャー] を選択します。
- 削除するクラスターを選択し、[削除] を選択 します。
- [ 追加] を選択し、クラスター名を入力して、[ 追加] を選択します。
- クラスターが読み込まれたら、[ SDN インフラストラクチャ] を選択します。 これにより、Windows Admin Centerは更新された証明書を自動的に再インポートします。