次の方法で共有


ネットワーク コントローラー サーバー証明書を更新する

ネットワーク コントローラー (NC) は、VMM などの REST クライアントとの Northbound 通信と、Hyper-V ホストとソフトウェア ロード バランサーとの南方向通信に証明書を使用します。

NC を展開した後、次のシナリオでこの証明書を変更または更新できます。

  • 証明書の有効期限が切れている

  • 自己署名証明書から証明機関 (CA) によって発行された証明書に移行する場合。

    メモ

    同じキーで既存の証明書を更新する場合、これらの手順は必要ありません。

開始する前に

既存のネットワーク コントローラーの REST 名を使用して、新しい SSL 証明書を作成してください。 詳細情報。

サーバー証明書を更新する

  1. 証明書が自己署名されている場合は、次の操作を行います。

    • 秘密キーありの証明書: 証明書をエクスポートして、それをすべての NC ノードのマイ ストアにインポートします。
    • 秘密キーのない証明書 - 証明書をエクスポートし、すべての NC ノードの Root ストアにインポートします。
  2. 証明書が CA によって発行された証明書の場合は、すべてのネットワーク コントローラー ノードの My ストアにインポートします。

    メモ

    NC ノードから現在の証明書を削除しないでください。 既存の証明書を削除する前に、更新された証明書を検証する必要があります。 残りの手順に進み、証明書を更新します。

  3. NC ノードのいずれかで次の PowerShell コマンドを実行して、サーバー証明書を更新します。

    
    $certificate = Get-ChildItem -Path Cert:\LocalMachine\My | Where {$_.Thumbprint -eq “Thumbprint of new certificate”}
    Set-NetworkController -ServerCertificate $certificate
    
  4. NC ノードのいずれかで次のコマンドを実行して、NC に格納されている資格情報の暗号化に使用する証明書を更新します。

    
    $certificate = Get-ChildItem -Path Cert:\LocalMachine\My | Where {$_.Thumbprint -eq “Thumbprint of new certificate”}
    Set-NetworkControllerCluster -CredentialEncryptionCertificate $certificate
    
  5. NC ノードのいずれかで次の PowerShell コマンドを実行して、サーバー REST リソースを取得します。

    
    Get-NetworkControllerServer -ConnectionUri <REST uri of your deployment>
    
  6. サーバー REST リソースで、 Credentials オブジェクトに移動し、証明書の拇印と一致する値 X509Certificate の種類の資格情報を確認します。 資格情報リソース ID をメモします。

    
    "Connections":
    {
       {
          "ManagementAddresses":[ “contoso.com" ],                  
          "CredentialType":  "X509Certificate",
          "Protocol":  null,
          "Port":  null,
          "Credential": {
                            "Tags":  null,
                            "ResourceRef":  "/credentials/<credential resource Id>,
                            "InstanceId":  "00000000-0000-0000-0000-000000000000",
                            …
                            …
                         }
        }   
    }
    
  7. 上記で取得した X509Certificate タイプの資格情報 REST リソースを、新しい証明書の拇印で更新します。

    任意の NC ノードでこの PowerShell コマンドレットを実行します。

    
    $cred=New-Object Microsoft.Windows.Networkcontroller.credentialproperties
    $cred.type="X509Certificate"
    $cred.username=""
    $cred.value="<thumbprint of the new certificate>"
    New-NetworkControllerCredential -ConnectionUri <REST uri of the deployment> -ResourceId <credential resource Id> -Properties
    $cred
    
  8. 新しい証明書が自己署名証明書の場合は、すべての Hyper-V ホストとソフトウェア ロード バランサーの MUX 仮想マシンの信頼されたルート証明書ストアに証明書を (秘密キーなしで) プロビジョニングします。

  9. 次の PowerShell コマンドレットを使用して、VMM マシンの信頼されたルート証明書ストアに NC 証明書 (秘密キーなし) をプロビジョニングします。

    $certificate = Get-SCCertificate -ComputerName "NCRestName"
    $networkservice = Get-SCNetworkService | Where {$_.IsNetworkController -eq $true}
    Set-SCNetworkService -ProvisionSelfSignedCertificatesforNetworkService $true -Certificate
    $certificate -NetworkService $networkservice
    
    • NetworkService はネットワーク コントローラー サービスであり、 Certificate は新しい NC サーバー証明書です。
    • ProvisionSelfSignedCertificatesforNetworkService は、自己署名証明書に更新する場合には $true となります。
  10. 更新された証明書で接続が正常に動作することを確認します。

    NC ノードから前の証明書を削除できるようになりました。

    次のステップ

    NC 展開を検証し 展開が成功したことを確認します。