Você pode usar a CLI para substituir o certificado raiz da VMCA por um certificado assinado por uma autoridade de certificação de terceiros que inclua a VMCA na cadeia de certificados. No futuro, todos os certificados gerados pela VMCA incluem a cadeia completa. Você pode substituir certificados existentes por certificados recém-gerados.

Se você usar a VMCA como uma CA intermediária ou usar certificados personalizados, poderá encontrar uma complexidade significativa e o potencial de um impacto negativo na sua segurança e um aumento desnecessário no seu risco operacional. Para obter mais informações sobre o gerenciamento de certificados em um ambiente vSphere, consulte a postagem do blog intitulada Detonado sobre o novo produto - Substituição de certificado SSL híbrido vSphere em http://vmware.com/go/hybridvmca .

Substituir o certificado raiz (CA intermediária) usando a CLI

A primeira etapa para substituir os certificados VMCA por certificados personalizados é gerar uma CSR e enviá-la para ser assinada. Em seguida, use a CLI para adicionar o certificado assinado à VMCA como um certificado raiz.

Você pode usar o utilitário Certificate Manager ou outra ferramenta para gerar a CSR. O CSR deve atender aos seguintes requisitos:

  • Tamanho da chave: 2.048 bits (mínimo) a 16.384 bits (máximo) (codificado por PEM)
  • Formato PEM. VMware é compatível com PKCS8 e PKCS1 (chaves RSA). Quando chaves são adicionadas ao VECS, elas são convertidas em PKCS8.
  • x509 versão 3
  • A extensão de CA deve ser definida como true para certificados raiz, e o sinal de certificado deve estar na lista de requisitos. Por exemplo:
    basicConstraints        = critical,CA:true
    keyUsage                = critical,digitalSignature,keyCertSign
  • A assinatura da CRL deve estar habilitada.
  • O Uso Estendido de Chave pode estar vazio ou conter Autenticação do Servidor.
  • Nenhum limite explícito para o comprimento da cadeia de certificados. A VMCA usa o padrão OpenSSL, que é de 10 certificados.
  • Certificados com caracteres curinga ou com mais de um nome DNS não são compatíveis.
  • Você não pode criar ACs subsidiárias da VMCA.

    Consulte o artigo da base de conhecimento VMware em http://kb.vmware.com/kb/2112009, Criando um modelo de autoridade de certificação da Microsoft para a criação de certificado SSL no vSphere 6.x, para obter um exemplo usando a Autoridade de Certificação Microsoft.

Observação: O certificado FIPS de vSphere só valida tamanhos de chave RSA de 2.048 bits e 3.072 bits.
A VMCA valida os seguintes atributos de certificado quando você substitui o certificado raiz:
  • Tamanho da chave: 2048 bits (mínimo) a 16384 bits (máximo)
  • Uso da chave: Cert Sign
  • Restrição básica: Tipo de entidade CA

Procedimento

  1. Gere uma CSR e envie-a para sua CA.
    Siga as instruções da autoridade de certificação.
  2. Prepare um arquivo de certificado que inclua o certificado VMCA assinado e a cadeia completa de CAs de sua autoridade de certificação de terceiros ou autoridade de certificação corporativa. Salve o arquivo, por exemplo, como rootca1.crt.
    Você pode realizar essa etapa copiando todos os certificados de CA no formato PEM em um único arquivo. Você começa com o certificado raiz da VMCA e termina com o certificado CA PEM raiz. Por exemplo:
    -----BEGIN CERTIFICATE-----
    <Certificate of VMCA>
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    <Certificate of intermediary CA>
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    <Certificate of Root CA>
    -----END CERTIFICATE-----
  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. Substitua a CA raiz da VMCA existente.
    certool --rootca --cert=rootca1.crt --privkey=root1.key
    Quando você executa esse comando, ele:
    • Adiciona o novo certificado raiz personalizado ao local do certificado no sistema de arquivos.
    • Anexa o certificado raiz personalizado ao repositório TRUSTED_ROOTS no VECS (após um atraso).
    • Adiciona o certificado raiz personalizado ao vmdir (após um atraso).
  5. (Opcional) Para propagar a alteração para todas as instâncias do vmdir (VMware Serviço de Diretório), publique o novo certificado raiz no vmdir, fornecendo o caminho completo do arquivo para cada arquivo.
    Por exemplo, se o certificado tiver apenas um certificado na cadeia:
    dir-cli trustedcert publish --cert rootca1.crt
    Se o certificado tiver mais de um certificado na cadeia:
    dir-cli trustedcert publish --cert rootcal.crt --chain
    A replicação entre os nós vmdir ocorre a cada 30 segundos. Você não precisa adicionar o certificado raiz ao VECS explicitamente porque o VECS sonda vmdir para novos arquivos de certificado raiz a cada 5 minutos.
  6. (Opcional) Se necessário, você pode forçar uma atualização do VECS.
    vecs-cli force-refresh
  7. Reinicie todos os serviços.
    service-control --start --all
    

Exemplo: Substituindo o certificado raiz

Substitua o certificado raiz da VMCA pelo certificado raiz da CA personalizado usando o comando certool com a opção --rootca.

/usr/lib/vmware-vmca/bin/certool --rootca --cert=<path>/root.pem -–privkey=<path>/root.key
Quando você executa esse comando, ele:
  • Adiciona o novo certificado raiz personalizado ao local do certificado no sistema de arquivos.
  • Anexa o certificado raiz personalizado ao repositório TRUSTED_ROOTS no VECS.
  • Adiciona o certificado raiz personalizado ao vmdir.

O que Fazer Depois

Você poderá remover o certificado raiz original da VMCA do repositório de certificados se a política da sua empresa exigir isso. Se fizer isso, será necessário substituir o certificado de assinatura vCenter Single Sign-On. Consulte Substituir um certificado STS vCenter Server usando a linha de comando.

Substituir certificados SSL da máquina (CA intermediária) usando a CLI

Depois de receber o certificado assinado da CA, você pode usar a CLI para torná-lo o certificado raiz da VMCA e substituir todos os certificados SSL da máquina.

Essas etapas são essencialmente as mesmas para substituir por um certificado que usa a VMCA como autoridade de certificação. No entanto, nesse caso, a VMCA assina todos os certificados com a cadeia completa.

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

Para cada certificado SSL de máquina, o SubjectAltName deve conter DNS Name=<Machine FQDN>.

Procedimento

  1. Faça uma cópia do certool.cfg para cada máquina que precisa de um novo certificado.
    O arquivo certool.cfg está localizado 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 máquina, 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 machine42.crt --Name=Machine42_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.cert
    --key machine1.priv
  6. Reinicie todos os serviços.
    service-control --start --all
    

Exemplo: Substituindo certificados SSL de máquina (VMCA é autoridade de certificação intermediária)

  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 = VMware
    OrgUnit = VMware Engineering
    State = California 
    Locality = Palo Alto
    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
      

Substituir certificados de usuário da solução (CA intermediária) usando a CLI

Depois de substituir os certificados SSL da máquina, você pode usar a CLI para substituir os certificados de usuário da solução.

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

Cada certificado de usuário da solução deve ter um Subject diferente. Considere, por exemplo, incluir o nome de usuário da solução (como vpxd) ou outro identificador exclusivo.

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. Substitua o certificado existente em vmdir e, em seguida, em VECS.
    Para usuários da solução, você deve adicionar os certificados nessa ordem. Por exemplo:
    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 fazer login 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: Substituindo certificados de usuário da solução (CA intermediária)

  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