Поделиться через


Обновление сертификата сервера сетевого контроллера

Сетевой контроллер (NC) использует сертификат для северного направления общения с клиентами REST, такими как VMM, и южного направления общения с узлами Hyper-V и программными балансировщиками нагрузки.

Этот сертификат можно изменить или обновить в следующих сценариях после развертывания NC.

  • Срок действия сертификата истек

  • Вы хотите перейти от самозаверяющего сертификата к сертификату, выданному центром сертификации (ЦС).

    Примечание.

    При продлении существующего сертификата с тем же ключом эти действия не требуются.

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

Убедитесь, что вы создадите новый SSL-сертификат с именем REST существующего сетевого контроллера. Подробнее.

Обновление сертификата сервера

  1. Если сертификат самозаверяется, сделайте следующее:

    • Сертификат с закрытым ключом - Экспортируйте сертификат и импортируйте его в хранилище My на всех узлах NC.
    • Сертификат без закрытого ключа — экспортируйте сертификат и импортируйте его во все хранилища корня узлов NC.
  2. Если сертификат является сертификатом, выданным Удостоверяющим Центром (ЦС), импортируйте его в хранилище My на всех узлах сетевого контроллера.

    Примечание.

    Не удаляйте текущий сертификат с узлов NC. Перед удалением существующего сертификата необходимо проверить обновленный сертификат. Выполните остальные действия по обновлению сертификата.

  3. Обновите сертификат сервера, выполнив следующую команду PowerShell на одном из узлов NC.

    
    $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. Получите ресурс REST сервера, выполнив следующую команду PowerShell на одном из узлов NC.

    
    Get-NetworkControllerServer -ConnectionUri <REST uri of your deployment>
    
  6. В ресурсе REST сервера перейдите к объекту Credentials и проверьте учетные данные типа X509Certificate со значением, соответствующим отпечатку сертификата. Обратите внимание на идентификатор ресурса учетных данных.

    
    "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 , полученный выше, с отпечатком нового сертификата.

    Выполните этот командлет PowerShell на любом из узлов NC.

    
    $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. Подготовьте сертификат NC (без закрытого ключа) в хранилище корневых доверенных сертификатов на компьютере VMM с помощью следующей команды PowerShell:

    $certificate = Get-SCCertificate -ComputerName "NCRestName"
    $networkservice = Get-SCNetworkService | Where {$_.IsNetworkController -eq $true}
    Set-SCNetworkService -ProvisionSelfSignedCertificatesforNetworkService $true -Certificate
    $certificate -NetworkService $networkservice
    
    • NetworkService — это служба сетевого контроллера, сертификат — это новый сертификат сервера NC.
    • ProvisionSelfSignedCertificatesforNetworkService $true, если вы обновляете самозаверяющий сертификат.
  10. Убедитесь, что подключение работает без сбоев с обновленным сертификатом.

    Теперь можно удалить предыдущий сертификат из узлов NC.

    Следующие шаги

    Проверьте развертывание NC, чтобы обеспечить его успешное выполнение.