Udostępnij za pośrednictwem


Aktualizowanie certyfikatu serwera kontrolera sieci

Kontroler sieci (NC) używa certyfikatu do komunikacji northbound z klientami REST, takimi jak VMM, oraz komunikacji southbound z hostami Hyper-V i programowymi modułami równoważenia obciążenia.

Ten certyfikat można zmienić lub zaktualizować w następujących sytuacjach po wdrożeniu NC.

  • Certyfikat wygasł

  • Chcesz przenieść się z certyfikatu z podpisem własnym do certyfikatu wystawionego przez urząd certyfikacji.

    Uwaga

    Jeśli odnowisz istniejący certyfikat przy użyciu tego samego klucza, te kroki nie są wymagane.

Przed rozpoczęciem

Upewnij się, że utworzono nowy certyfikat SSL z nazwą REST istniejącego kontrolera sieci. Dowiedz się więcej.

Aktualizowanie certyfikatu serwera

  1. Jeśli certyfikat jest podpisany samodzielnie, wykonaj następujące czynności:

    • Certyfikat z kluczem prywatnym — wyeksportuj certyfikat i zaimportuj go do magazynu Mój na wszystkich węzłach NC.
    • Certyfikat bez klucza prywatnego — wyeksportuj certyfikat i zaimportuj go w magazynie Root wszystkich węzłów NC.
  2. Jeśli certyfikat jest certyfikatem wystawionym przez urząd certyfikacji, zaimportuj go do sklepu My wszystkich węzłów kontrolera sieci.

    Uwaga

    NIE USUWAJ bieżącego certyfikatu z węzłów NC. Przed usunięciem istniejącego certyfikatu należy zweryfikować zaktualizowany certyfikat. Wykonaj pozostałe kroki, aby zaktualizować certyfikat.

  3. Zaktualizuj certyfikat serwera, wykonując następujące polecenie programu PowerShell w jednym z węzłów nc.

    
    $certificate = Get-ChildItem -Path Cert:\LocalMachine\My | Where {$_.Thumbprint -eq “Thumbprint of new certificate”}
    Set-NetworkController -ServerCertificate $certificate
    
  4. Zaktualizuj certyfikat używany do szyfrowania poświadczeń przechowywanych w nc, wykonując następujące polecenie w jednym z węzłów NC.

    
    $certificate = Get-ChildItem -Path Cert:\LocalMachine\My | Where {$_.Thumbprint -eq “Thumbprint of new certificate”}
    Set-NetworkControllerCluster -CredentialEncryptionCertificate $certificate
    
  5. Pobierz zasób REST serwera, wykonując następujące polecenie programu PowerShell w jednym z węzłów nc.

    
    Get-NetworkControllerServer -ConnectionUri <REST uri of your deployment>
    
  6. W zasobie REST serwera przejdź do obiektu Credentials i sprawdź poświadczenia typu X509Certificate z wartością zgodną z odciskiem palca certyfikatu. Zanotuj identyfikator zasobu poświadczeń.

    
    "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. Zaktualizuj zasób REST poświadczeń typu X509Certificate pobrany powyżej przy użyciu odcisku palca nowego certyfikatu.

    Wykonaj to polecenie cmdlet programu PowerShell na dowolnym węźle 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. Jeśli nowy certyfikat jest certyfikatem z podpisem własnym, należy umieścić certyfikat (bez klucza prywatnego) w zaufanym magazynie certyfikatów głównych wszystkich hostów Hyper-V i maszyn wirtualnych MUX modułu równoważenia obciążenia oprogramowania.

  9. Załóż certyfikat NC (bez klucza prywatnego) w magazynie zaufanych głównych certyfikatów na maszynie VMM za pomocą następującego polecenia cmdlet w programie PowerShell.

    $certificate = Get-SCCertificate -ComputerName "NCRestName"
    $networkservice = Get-SCNetworkService | Where {$_.IsNetworkController -eq $true}
    Set-SCNetworkService -ProvisionSelfSignedCertificatesforNetworkService $true -Certificate
    $certificate -NetworkService $networkservice
    
    • NetworkService jest usługą kontrolera sieci, certyfikat jest nowym certyfikatem serwera NC.
    • ProvisionSelfSignedCertificatesforNetworkService jest $true, jeśli przechodzisz na certyfikat podpisany przez siebie.
  10. Sprawdź, czy łączność działa prawidłowo ze zaktualizowanym certyfikatem.

    Możesz teraz usunąć poprzedni certyfikat z węzłów NC.

    Następne kroki

    Zweryfikuj wdrożenie NC, aby upewnić się, że wdrożenie zakończyło się pomyślnie.