Se o certificado raiz VMware Certificate Authority (VMCA) expirar em um futuro próximo, ou se você quiser substituí-lo por outros motivos, poderá usar a CLI para gerar um novo certificado raiz e adicioná-lo ao Serviço de Diretório VMware. Em seguida, você pode gerar novos certificados SSL de máquina e certificados de usuário da solução usando o novo certificado raiz.

Use o utilitário vSphere Certificate Manager para substituir certificados na maioria dos casos.

Se você precisar de controle refinado, este cenário fornece instruções passo a passo detalhadas para substituir o conjunto completo de certificados usando comandos da CLI. Em vez disso, você pode substituir apenas certificados individuais usando o procedimento na tarefa correspondente.

Pré-requisitos

Somente [email protected] ou outros usuários do grupo CAAdmins podem executar tarefas de gerenciamento de certificados. Consulte Adicionar membros a um grupo vCenter Single Sign-On.

Gerar um novo certificado raiz assinado pela VMCA usando a CLI

Você pode gerar novos certificados assinados pela VMCA com a CLI certool e publicar os certificados no vmdir.

Procedimento

  1. No vCenter Server, gere um novo certificado autoassinado e uma chave privada.
    certool --genselfcacert --outprivkey <key_file_path> --outcert <cert_file_path> --config <config_file>
  2. Substitua o certificado raiz existente pelo novo certificado.
    certool --rootca --cert <cert_file_path> --privkey <key_file_path>
    O comando gera o certificado, o adiciona ao vmdir e o adiciona ao VECS.
  3. Interrompa todos os serviços e inicie os serviços que lidam com a criação, a propagação e o armazenamento de certificados.
    service-control --stop --all
    service-control --start vmafdd
    service-control --start vmdird
    service-control --start vmcad
    
  4. (Opcional) Publique o novo certificado raiz em vmdir.
    dir-cli trustedcert publish --cert newRoot.crt
    
    O comando atualiza todas as instâncias de vmdir imediatamente. Se você não executar o comando, a propagação do novo certificado para todos os nós poderá demorar um pouco.
  5. Reinicie todos os serviços.
    service-control --start --all
    

Exemplo: Gerar um novo certificado raiz assinado pela VMCA

O exemplo a seguir mostra todas as etapas para verificar as informações atuais da CA raiz e para regenerar o certificado raiz.
  1. (Opcional) No vCenter Server, liste o certificado raiz da VMCA para garantir que ele esteja no repositório de certificados.
    /usr/lib/vmware-vmca/bin/certool --getrootca 
    A saída é semelhante a esta:
    output:
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number:
                cf:2d:ff:49:88:50:e5:af
        ...
    
  2. (Opcional) Liste o repositório do VECS TRUSTED_ROOTS e compare o número de série do certificado com a saída da Etapa 1.
    /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store TRUSTED_ROOTS --text
    
    No caso mais simples, com apenas um certificado raiz, a saída é semelhante a esta:
    Number of entries in store :    1
    Alias : 960d43f31eb95211ba3a2487ac840645a02894bd
    Entry type :    Trusted Cert
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number:
                cf:2d:ff:49:88:50:e5:af
  3. Gere um novo certificado raiz da VMCA. O comando adiciona o certificado ao repositório TRUSTED_ROOTS no VECS e no vmdir (VMware Serviço de Diretório).
    /usr/lib/vmware-vmca/bin/certool --selfca --config=/usr/lib/vmware-vmca/share/config/certool.cfg

Substituir certificados SSL da máquina por certificados assinados pela VMCA usando a CLI

Depois de gerar um novo certificado raiz assinado pela VMCA, você pode usar o comando vecs-cli para substituir todos os certificados SSL de máquina em seu ambiente.

Cada máquina deve ter um certificado SSL de máquina para comunicação segura com outros serviços. Quando várias instâncias do vCenter Server estão conectadas na configuração do Modo Vinculado Avançado, você deve executar os comandos de geração de certificado SSL da Máquina em cada nó.

Pré-requisitos

Esteja preparado para interromper todos os serviços e iniciar os serviços que lidam com a propagação e o armazenamento de certificados.

Procedimento

  1. Faça uma cópia do certool.cfg para cada máquina que precisa de um novo certificado.
    Você pode encontrar o arquivo certool.cfg no diretório /usr/lib/vmware-vmca/share/config/.
  2. Edite o arquivo de configuração personalizado de cada máquina para incluir o FQDN dessa máquina.
    Execute NSLookup no endereço IP da máquina para ver a lista DNS do nome e use esse nome para o campo Nome do host no arquivo.
  3. Gere um par de arquivos de chave pública/privada e um certificado para cada arquivo, passando o arquivo de configuração que você acabou de personalizar.
    Por exemplo:
    certool --genkey --privkey=machine1.priv --pubkey=machine1.pub
    certool --gencert --privkey=machine1.priv --cert machine1.crt --Name=Machine1_Cert --config machine1.cfg
  4. Interrompa todos os serviços e inicie os serviços que lidam com a criação, a propagação e o armazenamento de certificados.
    service-control --stop --all
    service-control --start vmafdd
    service-control --start vmdird
    service-control --start vmcad
    
  5. Adicione o novo certificado ao VECS.
    Todas as máquinas precisam do novo certificado no repositório de certificados local para se comunicar por SSL. Primeiro, exclua a entrada existente e, em seguida, adicione a nova entrada.
    vecs-cli entry delete --store MACHINE_SSL_CERT --alias __MACHINE_CERT  
    vecs-cli entry create --store MACHINE_SSL_CERT --alias __MACHINE_CERT --cert machine1.crt --key machine1.priv
  6. Reinicie todos os serviços.
    service-control --start --all
    

Exemplo: Substituindo certificados de máquina por certificados assinados pela VMCA

  1. Crie um arquivo de configuração para o certificado SSL e salve-o como ssl-config.cfg no diretório atual.
    Country = US
    Name = vmca-<FQDN-example>
    Organization = <my_company>
    OrgUnit = <my_company Engineering>
    State = <my_state> 
    Locality = <mytown>
    Hostname = <FQDN>
  2. Gere um par de chaves para o certificado SSL da máquina. Em uma implantação de várias instâncias vCenter Server conectadas na configuração do Modo Vinculado Avançado, execute este comando em cada nó vCenter Server.
    /usr/lib/vmware-vmca/bin/certool --genkey --privkey=ssl-key.priv --pubkey=ssl-key.pub
    

    Os arquivos ssl-key.priv e ssl-key.pub são criados no diretório atual.

  3. Gere o novo certificado SSL da máquina. Este certificado é assinado pela VMCA. Se você tiver substituído o certificado raiz da VMCA pelo certificado personalizado, a VMCA assinará todos os certificados com a cadeia completa.
    /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vmca-ssl.crt --privkey=ssl-key.priv --config=ssl-config.cfg

    O arquivo new-vmca-ssl.crt é criado no diretório atual.

  4. (Opcional) Liste o conteúdo do VECS.
    /usr/lib/vmware-vmafd/bin/vecs-cli store list
    • Saída de amostra em vCenter Server:
      output (on vCenter):
      MACHINE_SSL_CERT
      TRUSTED_ROOTS
      TRUSTED_ROOT_CRLS
      machine
      vsphere-webclient
      vpxd
      vpxd-extension
      hvc
      data-encipherment
      APPLMGMT_PASSWORD
      SMS
      wcp
      KMS_ENCRYPTION
  5. Substitua o certificado SSL da Máquina no VECS pelo novo certificado SSL da Máquina. Os valores --store e --alias devem corresponder exatamente aos nomes padrão.
    • Em cada vCenter Server, execute os seguintes comandos para atualizar o certificado SSL da Máquina no repositório MACHINE_SSL_CERT. Você deve atualizar o certificado para cada máquina separadamente, pois cada uma tem um FQDN diferente.
      /usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store MACHINE_SSL_CERT --alias __MACHINE_CERT
      /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store MACHINE_SSL_CERT --alias __MACHINE_CERT --cert new-vmca-ssl.crt --key ssl-key.priv
      

O que Fazer Depois

Você também pode substituir os certificados para seus hosts ESXi. Consulte a publicação vSphere Segurança.

Substituir certificados de usuário da solução por novos certificados assinados pela VMCA usando a CLI

Depois de substituir os certificados SSL da máquina, você pode usar o comando dir-cli para substituir todos os certificados de usuário da solução. Os certificados de usuário da solução devem ser válidos, ou seja, não devem ter expirado, mas nenhuma das outras informações no certificado é usada pela infraestrutura de certificados.

Muitos clientes do VMware não substituem os certificados de usuário da solução. Eles substituem apenas os certificados SSL da máquina por certificados personalizados. Essa abordagem híbrida atende aos requisitos de suas equipes de segurança.
  • Os certificados ficam atrás de um proxy ou são certificados personalizados.
  • Nenhuma autoridade de certificação intermediária é usada.

Substitua o certificado do usuário da solução da máquina e o certificado do usuário da solução em cada sistema vCenter Server.

Observação: Quando você lista os certificados de usuário da solução em grandes implantações, a saída de dir-cli list inclui todos os usuários da solução de todos os nós. Execute vmafd-cli get-machine-id --server-name localhost para encontrar a ID da máquina local para cada host. Cada nome de usuário da solução inclui a ID da máquina.

Pré-requisitos

Esteja preparado para interromper todos os serviços e iniciar os serviços que lidam com a propagação e o armazenamento de certificados.

Procedimento

  1. Faça uma cópia de certool.cfg, remova os campos Nome, Endereço IP, Nome DNS e e-mail e renomeie o arquivo, por exemplo, para sol_usr.cfg.
    Você pode nomear os certificados na linha de comando como parte da geração. As outras informações não são necessárias para os usuários da solução. Se você deixar as informações padrão, os certificados gerados serão potencialmente confusos.
  2. Gere um par de arquivos de chave pública/privada e um certificado para cada usuário da solução, passando o arquivo de configuração que você acabou de personalizar.
    Por exemplo:
    certool --genkey --privkey=vpxd.priv --pubkey=vpxd.pub 
    certool --gencert --privkey=vpxd.priv --cert vpxd.crt --Name=VPXD_1 --config sol_usr.cfg
  3. Localize o nome de cada usuário da solução.
    dir-cli service list 
    
    Você pode usar a ID exclusiva que é retornada ao substituir os certificados. A entrada e a saída podem ter a seguinte aparência.
    dir-cli service list
    Enter password for [email protected]:
    1. machine-623bef28-0311-436e-b21f-6e0d39aa5179
    2. vsphere-webclient-623bef28-0311-436e-b21f-6e0d39aa5179
    3. vpxd-623bef28-0311-436e-b21f-6e0d39aa5179
    4. vpxd-extension-623bef28-0311-436e-b21f-6e0d39aa5179
    5. hvc-623bef28-0311-436e-b21f-6e0d39aa5179
    6. wcp-1cbe0a40-e4ce-4378-b5e7-9460e2b8200e
    Em uma implantação de várias instâncias vCenter Server conectadas na configuração do Modo Vinculado Avançado, a saída de dir-cli service list inclui todos os usuários da solução de todos os nós. Execute vmafd-cli get-machine-id --server-name localhost para encontrar a ID da máquina local para cada host. Cada nome de usuário da solução inclui a ID da máquina.
  4. Interrompa todos os serviços e inicie os serviços que lidam com a criação, a propagação e o armazenamento de certificados.
    service-control --stop --all
    service-control --start vmafdd
    service-control --start vmdird
    service-control --start vmcad
    
  5. Para cada usuário da solução, substitua o certificado existente em vmdir e, em seguida, em VECS.
    O exemplo a seguir mostra como substituir os certificados do serviço vpxd.
    dir-cli service update --name <vpxd-xxxx-xxx-7c7b769cd9f4> --cert ./vpxd.crt
    vecs-cli entry delete --store vpxd --alias vpxd
    vecs-cli entry create --store vpxd --alias vpxd --cert vpxd.crt --key vpxd.priv
    
    
    Observação: Os usuários da solução não poderão se autenticar em vCenter Single Sign-On se você não substituir o certificado em vmdir.
  6. Reinicie todos os serviços.
    service-control --start --all
    

Exemplo: Usando certificados de usuário do VMCA-Signed Solution

  1. Gere um par de chaves pública/privada para cada usuário da solução em cada nó vCenter Server em uma configuração de Modo Vinculado Avançado. Isso inclui um par para a solução de máquina e um par para cada usuário de solução adicional (vpxd, vpxd-extension, vsphere-webclient, wcp).
    1. Gere um par de chaves para o usuário da solução de máquina.
      /usr/lib/vmware-vmca/bin/certool --genkey --privkey=machine-key.priv --pubkey=machine-key.pub
      
    2. Gere um par de chaves para o usuário da solução vpxd em cada nó.
      /usr/lib/vmware-vmca/bin/certool --genkey --privkey=vpxd-key.priv --pubkey=vpxd-key.pub
    3. Gere um par de chaves para o usuário da solução vpxd-extension em cada nó.
      /usr/lib/vmware-vmca/bin/certool --genkey --privkey=vpxd-extension-key.priv --pubkey=vpxd-extension-key.pub
    4. Gere um par de chaves para o usuário da solução vsphere-webclient em cada nó.
      /usr/lib/vmware-vmca/bin/certool --genkey --privkey=vsphere-webclient-key.priv --pubkey=vsphere-webclient-key.pub
    5. Gere um par de chaves para o usuário da solução wcp em cada nó.
      /usr/lib/vmware-vmca/bin/certool --genkey --privkey=wcp-key.priv --pubkey=wcp-key.pub
  2. Gere certificados de usuário da solução assinados pelo novo certificado raiz da VMCA para o usuário da solução da máquina e para cada usuário da solução adicional (vpxd, vpxd-extension, vsphere-webclient, wcp) em cada nó vCenter Server.
    Observação: O parâmetro --Name deve ser exclusivo. A inclusão do nome do repositório de usuários da solução facilita a visualização de qual certificado é mapeado para qual usuário da solução. O exemplo inclui o nome, por exemplo, vpxd ou vpxd-extension em cada caso.
    1. Execute o seguinte comando para gerar um certificado de usuário da solução para o usuário da solução da máquina nesse nó.
      /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-machine.crt --privkey=machine-key.priv --Name=machine 
      
    2. Gere um certificado para o usuário da solução de máquina em cada nó.
      /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-machine.crt --privkey=machine-key.priv --Name=machine
    3. Gere um certificado para o usuário da solução vpxd em cada nó.
      /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vpxd.crt --privkey=vpxd-key.priv --Name=vpxd
      
    4. Gere um certificado para o usuário da solução vpxd-extensions em cada nó.
      /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vpxd-extension.crt --privkey=vpxd-extension-key.priv --Name=vpxd-extension
    5. Gere um certificado para o usuário da solução vsphere-webclient em cada nó executando o seguinte comando.
      /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vsphere-webclient.crt --privkey=vsphere-webclient-key.priv --Name=vsphere-webclient
    6. Gere um certificado para o usuário da solução wcp em cada nó executando os comandos a seguir.
      /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-wcp.crt --privkey=wcp-key.priv --Name=wcp
  3. Substitua os certificados de usuário da solução no VECS pelos novos certificados de usuário da solução.
    Observação: Os parâmetros --store e --alias precisam corresponder exatamente aos nomes padrão dos serviços.
    1. Substitua o certificado do usuário da solução da máquina em cada nó:
      /usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store machine --alias machine
      /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store machine --alias machine --cert new-machine.crt --key machine-key.priv
      
    2. Substitua o certificado de usuário da solução vpxd em cada nó.
      /usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store vpxd --alias vpxd
      /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store vpxd --alias vpxd --cert new-vpxd.crt --key vpxd-key.priv
      
    3. Substitua o certificado de usuário da solução vpxd-extension em cada nó.
      /usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store vpxd-extension --alias vpxd-extension
      /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store vpxd-extension --alias vpxd-extension --cert new-vpxd-extension.crt --key vpxd-extension-key.priv
      
    4. Substitua o certificado de usuário do vsphere-webclient solution em cada nó.
      /usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store vsphere-webclient --alias vsphere-webclient
      /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store vsphere-webclient --alias vsphere-webclient --cert new-vsphere-webclient.crt --key vsphere-webclient-key.priv
      
    5. Substitua o certificado do usuário da solução wcp em cada nó.
      /usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store wcp --alias wcp
      /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store wcp --alias wcp --cert new-wcp.crt --key wcp-key.priv
      
  4. Atualize o Serviço de Diretório VMware (vmdir) com os novos certificados de usuário da solução. Você será solicitado a fornecer uma senha de administrador vCenter Single Sign-On.
    1. Execute dir-cli service list para obter o sufixo de ID de serviço exclusivo para cada usuário da solução. Você executa esse comando em um sistema vCenter Server.
      /usr/lib/vmware-vmafd/bin/dir-cli service list
      output:
      1. machine-623bef28-0311-436e-b21f-6e0d39aa5179
      2. vsphere-webclient-623bef28-0311-436e-b21f-6e0d39aa5179
      3. vpxd-623bef28-0311-436e-b21f-6e0d39aa5179
      4. vpxd-extension-623bef28-0311-436e-b21f-6e0d39aa5179
      5. hvc-623bef28-0311-436e-b21f-6e0d39aa5179
      6. wcp-1cbe0a40-e4ce-4378-b5e7-9460e2b8200e
      Observação: Quando você lista os certificados de usuário da solução em grandes implantações, a saída de dir-cli list inclui todos os usuários da solução de todos os nós. Execute vmafd-cli get-machine-id --server-name localhost para encontrar a ID da máquina local para cada host. Cada nome de usuário da solução inclui a ID da máquina.
    2. Substitua o certificado da máquina em vmdir em cada nó vCenter Server. Por exemplo, se machine-6fd7f140-60a9-11e4-9e28-005056895a69 for o usuário da solução de máquina no vCenter Server, execute este comando:
      /usr/lib/vmware-vmafd/bin/dir-cli service update --name machine-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-machine.crt
    3. Substitua o certificado de usuário da solução vpxd em vmdir em cada nó. Por exemplo, se vpxd-6fd7f140-60a9-11e4-9e28-005056895a69 for a ID de usuário da solução vpxd, execute este comando:
      /usr/lib/vmware-vmafd/bin/dir-cli service update --name vpxd-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vpxd.crt
    4. Substitua o certificado de usuário da solução vpxd-extension no vmdir em cada nó. Por exemplo, se vpxd-extension-6fd7f140-60a9-11e4-9e28-005056895a69 for o ID do usuário da solução vpxd-extension, execute este comando:
      /usr/lib/vmware-vmafd/bin/dir-cli update --name vpxd-extension-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vpxd-extension.crt
      
    5. Substitua o certificado de usuário do vsphere-webclient solution em cada nó. Por exemplo, se vsphere-webclient-6fd7f140-60a9-11e4-9e28-005056895a69 for o ID de usuário da solução vsphere-webclient, execute este comando:
      /usr/lib/vmware-vmafd/bin/dir-cli service update --name vsphere-webclient-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vsphere-webclient.crt
      
    6. Substitua o certificado do usuário da solução wcp em cada nó. Por exemplo, se wcp-1cbe0a40-e4ce-4378-b5e7-9460e2b8200e for o ID do usuário da solução wcp, execute este comando:
      /usr/lib/vmware-vmafd/bin/dir-cli service update --name wcp-1cbe0a40-e4ce-4378-b5e7-9460e2b8200e --cert new-wcp.crt
      

O que Fazer Depois

Reinicie todos os serviços em cada nó vCenter Server.