Compartilhar via


Atualizar o certificado do servidor do controlador de rede

O NC (controlador de rede) usa um certificado para comunicação Northbound com clientes REST, como VMM, e comunicação Southbound com hosts Hyper-V e balanceadores de carga de software.

Você pode alterar ou atualizar esse certificado nos seguintes cenários depois de implantar o NC.

  • O certificado expirou

  • Você deseja passar de um certificado autoassinado para um certificado emitido por uma autoridade de certificação (CA).

    Observação

    Se você renovar o certificado existente com a mesma chave, essas etapas não serão necessárias.

Antes de começar

Certifique-se de criar um novo certificado SSL com o nome REST do controlador de rede existente. Saiba mais.

Atualizar o certificado do servidor

  1. Se o certificado for autoassinado, faça o seguinte:

    • Certificado com chave privada – exporte o certificado e importe-o no repositório My de todos os nós do controlador de rede.
    • Certificado sem chave privada – exporte o certificado e importe-o no repositório Root de todos os nós do controlador de rede.
  2. Se o certificado for um certificado emitido por uma autoridade de certificação, importe-o no repositório Meu de todos os nós do controlador de rede.

    Observação

    NÃO remova o certificado atual dos nós da NC. Você deve validar o certificado atualizado antes de remover o existente. Prossiga com o restante das etapas para atualizar o certificado.

  3. Atualize o certificado do servidor executando o seguinte comando do PowerShell em um dos nós NC.

    
    $certificate = Get-ChildItem -Path Cert:\LocalMachine\My | Where {$_.Thumbprint -eq “Thumbprint of new certificate”}
    Set-NetworkController -ServerCertificate $certificate
    
  4. Atualize o certificado usado para criptografar as credenciais armazenadas no NC executando o comando a seguir em um dos nós NC.

    
    $certificate = Get-ChildItem -Path Cert:\LocalMachine\My | Where {$_.Thumbprint -eq “Thumbprint of new certificate”}
    Set-NetworkControllerCluster -CredentialEncryptionCertificate $certificate
    
  5. Recupere um recurso REST do servidor executando o seguinte comando do PowerShell em um dos nós NC.

    
    Get-NetworkControllerServer -ConnectionUri <REST uri of your deployment>
    
  6. No recurso REST do servidor, navegue até o objeto Credentials e verifique a credencial do tipo X509Certificate com um valor correspondente à impressão digital do certificado. Anote o ID do recurso de credencial.

    
    "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. Atualize o recurso REST de credencial do tipo X509Certificate recuperado acima com a impressão digital do novo certificado.

    Execute esse cmdlet do PowerShell em qualquer um dos nós 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. Se o novo certificado for um certificado autoassinado, provisione o certificado (sem a chave privada) no armazenamento de certificados raiz confiáveis de todos os hosts Hyper-V e nas máquinas virtuais MUX do balanceador de carga de software.

  9. Provisione o certificado NC (sem a chave privada) no repositório de certificados raiz confiável do computador VMM usando o seguinte cmdlet do PowerShell:

    $certificate = Get-SCCertificate -ComputerName "NCRestName"
    $networkservice = Get-SCNetworkService | Where {$_.IsNetworkController -eq $true}
    Set-SCNetworkService -ProvisionSelfSignedCertificatesforNetworkService $true -Certificate
    $certificate -NetworkService $networkservice
    
    • NetworkService é o serviço do controlador de rede, Certificate é o novo certificado do servidor NC.
    • ProvisionSelfSignedCertificatesforNetworkService será $true se você estiver atualizando para um certificado autoassinado.
  10. Verifique se a conectividade está funcionando bem com o certificado atualizado.

    Agora você pode remover o certificado anterior dos nós da NC.

    Próximas etapas

    Valide a implantação da NC para garantir que a implantação seja bem-sucedida.