Обновление сертификата сервера сетевого контроллераUpdate the network controller server certificate

Важно!

Поддержка этой версии Virtual Machine Manager (VMM) прекращена. Рекомендуем перейти на VMM 2019.This version of Virtual Machine Manager (VMM) has reached the end of support, we recommend you to upgrade to VMM 2019.

Сетевой контроллер использует сертификат для обмена данными с вышестоящими клиентами REST (например, VMM) и нижестоящими узлами Hyper-V и подсистемамми балансировки нагрузки для программного обеспечения.Network controller (NC) uses a certificate for Northbound communication with REST clients (such as VMM) and Southbound communication with Hyper-V hosts and software load balancers.

Развернув сетевой контроллер, вы можете обновить или изменить этот сертификат, что потребуется в следующих сценариях:You can change or update this certificate in the following scenarios, after you deploy the NC.

  • срок действия сертификата истек;The certificate has expired

  • вы хотите отказаться от самозаверяющего сертификата в пользу сертификата, выданного центром сертификации.You want to move from a self-signed certificate to a certificate that is issued by a certificate authority (CA).

    Примечание

    Если вы просто обновляете существующий сертификат, сохраняя значение ключа, выполнять эту процедуру не нужно.If you renew the existing certificate with the same key, these steps are not required.

Перед началом работыBefore you start

При создании сертификата SSL присвойте ему имя REST существующего контроллера сети.Make sure you create a new SSL certificate with existing network controller's REST name. (Learn more) Дополнительные сведения.Learn more.

Обновление сертификата сервераUpdate the server certificate

  1. Если сертификат является самозаверяющим, выполните следующие действия.If the certificate is self-signed, do the following:

    • Если это сертификат с закрытым ключом, экспортируйте и импортируйте его в хранилище My на всех узлах сетевых контроллеров.Certificate with private key - Export the certificate and import it on all the NC nodes' My store.
    • Если это сертификат без закрытого ключа, экспортируйте и импортируйте его в хранилище Root на всех узлах сетевых контроллеров.Certificate without a private key - Export the certificate and import it on all the NC nodes' Root store.
  2. Если сертификат выдан центром сертификации, импортируйте его только в хранилище My на всех узлах сетевых контроллеров.If the certificate is a CA issued certificate, import it in all network controller nodes' My store.

    Примечание

    НЕ УДАЛЯЙТЕ текущий сертификат на узлах сетевых контроллеров.DO NOT remove the current certificate from the NC nodes. Прежде чем удалять старый сертификат, проверить новый сертификат.You should validate the updated certificate before you remove the existing one. Чтобы обновить сертификат, сделайте следующее.Proceed with rest of the steps to update the certificate.

  3. Обновите сертификат сервера, выполнив следующую команду PowerShell на одном из узлов сетевого контроллера.Update the server certificate by executing the following PowerShell command on one of the NC nodes.

    
    $certificate = Get-ChildItem -Path Cert:\LocalMachine\My | Where {$_.Thumbprint -eq “Thumbprint of new certificate”}
    Set-NetworkController -ServerCertificate $certificate
    
  4. Обновите сертификат, используемый для шифрования учетных данных, выполнив следующую команду на одном из узлов сетевого контроллера.Update the certificate used for encrypting the credentials stored in the NC by executing the following command on one of the NC nodes.

    
    $certificate = Get-ChildItem -Path Cert:\LocalMachine\My | Where {$_.Thumbprint -eq “Thumbprint of new certificate”}
    Set-NetworkControllerCluster -CredentialEncryptionCertificate $certificate
    
  5. Получите ресурс REST сервера, выполнив следующую команду PowerShell на одном из узлов сетевого контроллера.Retrieve a server REST resource by executing the following PowerShell command on one of the NC nodes.

    
    Get-NetworkControllerServer -ConnectionUri <REST uri of your deployment>
    
  6. В ресурсе REST сервера перейдите к объекту Учетные данные и проверьте тип учетных данных типа X509Certificate со значением, соответствующим отпечатку вашего сертификата.In the Server REST resource, navigate to the Credentials object and check the credential of type X509Certificate with a value matching your certificate's thumbprint. Запишите идентификатор ресурса учетных данных.Note the credential resource 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. Сохраните отпечаток нового сертификата в ресурс REST учетных данных с типом X509Certificate, полученный на предыдущем шаге.Update the credential REST resource of type X509Certificate retrieved above with the thumbprint of the new certificate.

    Выполните этот командлет PowerShell на любом узле сетевого контроллера.Execute these PowerShell cmdlet on any of the NC Node.

    
    $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 и мультиплексорных виртуальных машин подсистемы балансировки нагрузки программного обеспечения.If the new certificate is a self-signed certificate, provision the certificate (without the private key) in the trusted root certificate store of all the Hyper-V hosts and software load balancer MUX virtual machines.

  9. Подготовьте сертификат сетевого контроллера (без закрытого ключа) в хранилище доверенных корневых сертификатов для компьютера VMM с помощью следующего командлета PowerShell.Provision the NC certificate (without the private key) in the trusted root certificate store of the VMM machine using the following PowerShell cmdlet:

    $certificate = Get-SCCertificate -ComputerName "NCRestName"
    $networkservice = Get-SCNetworkService | Where {$_.IsNetworkController -eq $true}
    Set-SCNetworkService -ProvisionSelfSignedCertificatesforNetworkService $true -Certificate
    $certificate -NetworkService $networkservice
    
    • Здесь NetworkService обозначает службу сетевого контроллера, а Certificate — новый сертификат сервера сетевого контроллера.NetworkService is the network controller service, Certificate is the new NC server certificate.
    • ProvisionSelfSignedCertificatesforNetworkService имеет значение $true, если вы устанавливаете самозаверяющий сертификат.ProvisionSelfSignedCertificatesforNetworkService is $true if you are updating to a self-signed certificate.
  10. Убедитесь, что подключение установлено при использовании нового сертификата.Verify that the connectivity is working fine with the updated certificate.

    Только теперь можно удалить старый сертификат с узлов сетевого контроллера.You can now remove the previous certificate from the NC nodes.

    Дальнейшие действияNext steps

    Проверка развертывания NC позволит убедиться в успешном завершении развертывания.Validate the NC deployment to ensure that the deployment is successful.