Puede usar la CLI para reemplazar el certificado raíz de VMCA por un certificado externo firmado por una entidad de certificación en la que se incluya VMCA en la cadena de certificados. Más adelante, todos los certificados generados por VMCA incluirán la cadena completa. Puede reemplazar los certificados existentes por certificados generados recientemente.

Si utiliza VMCA como una entidad de certificación intermedia o utiliza certificados personalizados, es posible que experimente una complejidad considerable y que exista la posibilidad de un impacto negativo para la seguridad, así como un aumento innecesario en el riesgo operativo. Para obtener más información sobre la administración de certificados en un entorno de vSphere, consulte la publicación de blog llamada Revisión de producto nuevo: reemplazo del certificado SSL de vSphere híbrido en http://vmware.com/go/hybridvmca.

Reemplazar el certificado raíz (entidad de certificación intermedia) mediante la CLI

El primer paso para reemplazar los certificados VMCA por certificados personalizados es generar una CSR y enviarla para su firma. A continuación, use la CLI para agregar el certificado firmado a VMCA como certificado raíz.

Se puede utilizar la utilidad Certificate Manager u otra herramienta para generar la CSR. La CSR debe cumplir con los siguientes requisitos:

  • Tamaño de clave: de 2048 bits (mínimo) a 8192 bits (máximo) (formato codificado PEM)
  • Formato PEM. VMware admite PKCS8 y PKCS1 (claves RSA). Cuando se agregan claves a VECS, se convierten en PKCS8.
  • x509 versión 3
  • Para certificados raíz, la extensión CA se debe establecer en true y el signo cert debe estar en la lista de requisitos. Por ejemplo:
    basicConstraints        = critical,CA:true
    keyUsage                = critical,digitalSignature,keyCertSign
  • La firma CRL debe estar habilitada.
  • Uso mejorado de clave puede estar vacío o contener autenticación del servidor.
  • No hay límite explícito a la longitud de la cadena de certificados. VMCA utiliza el valor predeterminado de OpenSSL, que es de diez certificados.
  • No se admiten los certificados con comodines o con más de un nombre DNS.
  • No se pueden crear CA subsidiarias de VMCA.

    Para obtener un ejemplo de uso de la entidad de certificación de Microsoft, consulte el artículo de la base de conocimientos de VMware en https://kb.vmware.com/s/article/2112009, Crear una plantilla de entidad de certificación de Microsoft para creación de certificados SSL en vSphere 6.x.

Nota: El certificado FIPS de vSphere solo valida los tamaños de clave RSA de 2048 y 3072 bits.
VMCA valida los siguientes atributos de certificados al reemplazar el certificado raíz:
  • Tamaño de clave: de 2048 bits (mínimo) a 8192 bits (máximo).
  • Uso de clave: firma de certificado
  • Restricción básica: entidad de certificación de tipo sujeto

Procedimiento

  1. Genere una CSR y envíela a la entidad de certificación.
    Siga las instrucciones de la entidad de certificación.
  2. Prepare un archivo de certificado que incluya el certificado VMCA firmado y la cadena de entidad de certificación completa de la entidad de certificación empresarial o de terceros. Guarde el archivo, por ejemplo como rootca1.crt.
    Para aplicar este paso, se pueden copiar todos los certificados de la entidad de certificación en formato PEM en un solo archivo. Comience con el certificado raíz VMCA y termine con el certificado raíz PEM de la entidad de certificación. Por ejemplo:
    -----BEGIN CERTIFICATE-----
    <Certificate of VMCA>
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    <Certificate of intermediary CA>
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    <Certificate of Root CA>
    -----END CERTIFICATE-----
  3. Detenga todos los servicios e inicie los servicios que se ocupan de la creación, de la propagación y del almacenamiento de certificados.
    service-control --stop --all
    service-control --start vmafdd
    service-control --start vmdird
    service-control --start vmcad
    
  4. Reemplace la entidad de certificación raíz VMCA existente.
    certool --rootca --cert=rootca1.crt --privkey=root1.key
    Al ejecutarse, este comando realiza lo siguiente:
    • Agrega el nuevo certificado raíz personalizado a la ubicación de certificados en el sistema de archivos.
    • Anexa el certificado raíz personalizado al almacén TRUSTED_ROOTS en VECS (después de una demora).
    • Agrega el certificado raíz personalizado a vmdir (después de una demora).
  5. (opcional) Para propagar el cambio a todas las instancias de vmdir (VMware Directory Service), publique el nuevo certificado raíz en vmdir suministrando la ruta de acceso para cada archivo.
    Por ejemplo, si el certificado solo tiene un certificado en la cadena:
    dir-cli trustedcert publish --cert rootca1.crt
    Si el certificado tiene más de un certificado en la cadena:
    dir-cli trustedcert publish --cert rootcal.crt --chain
    Cada 30 segundos se produce la replicación entre los nodos de vmdir. No se necesita agregar el certificado raíz a VECS explícitamente, ya que VECS sondea vmdir cada 5 minutos en busca de nuevos archivos de certificados raíz.
  6. (opcional) Si fuera necesario, se puede forzar la actualización de VECS.
    vecs-cli force-refresh
  7. Reinicie todos los servicios.
    service-control --start --all

Ejemplo: Reemplazo del certificado raíz

Reemplace el certificado raíz de VMCA por el certificado raíz personalizado de la entidad de certificación mediante el comando certool con la opción --rootca.

/usr/lib/vmware-vmca/bin/certool --rootca --cert=<path>/root.pem -–privkey=<path>/root.key
Al ejecutarse, este comando realiza lo siguiente:
  • Agrega el nuevo certificado raíz personalizado a la ubicación de certificados en el sistema de archivos.
  • Anexa el certificado raíz personalizado al almacén TRUSTED_ROOTS en VECS.
  • Agrega el certificado raíz personalizado a vmdir.

Qué hacer a continuación

Se puede eliminar el certificado raíz original de VMCA del almacén de certificados si así lo establece la directiva de la empresa. Si se hace eso, es necesario reemplazar el certificado de firma de vCenter Single Sign-On. Consulte Reemplazar un certificado vCenter Server STS mediante la línea de comandos.

Reemplazar certificados SSL de máquina (entidad de certificación intermedia) mediante la CLI

Después de recibir el certificado firmado de la CA puede usar la CLI para convertirlo en el certificado raíz de VMCA y reemplazar todos los certificados SSL de máquina.

Estos pasos son prácticamente los mismos que los pasos para reemplazar un certificado por otro que utilice VMCA como entidad de certificación. Sin embargo, en este caso, VMCA firma todos los certificados con la cadena completa.

Cada máquina debe tener un certificado SSL de máquina para establecer una comunicación segura con otros servicios. Cuando varias instancias de vCenter Server están conectadas en la configuración de Enhanced Linked Mode, debe ejecutar los comandos de generación de certificados SSL de máquina en cada nodo.

Requisitos previos

Para el certificado SSL de máquina, el SubjectAltName debe contener DNS Name=<Machine FQDN>.

Procedimiento

  1. Haga una copia de certool.cfg para cada máquina que necesite un certificado nuevo.
    El archivo certool.cfg, se encuentra en el directorio /usr/lib/vmware-vmca/share/config/.
  2. Edite el archivo de configuración personalizado de cada máquina a fin de incluir el FQDN de la máquina.
    Ejecute NSLookup sobre la dirección IP de la máquina a fin de ver el listado de DNS del nombre y usar ese nombre en el campo Nombre de host del archivo.
  3. Genere un par de archivos de clave pública/privada y un certificado para cada máquina pasando el archivo de configuración que acaba de personalizar.
    Por ejemplo:
    certool --genkey --privkey=machine1.priv --pubkey=machine1.pub
    certool --gencert --privkey=machine1.priv --cert machine42.crt --Name=Machine42_Cert --config machine1.cfg
  4. Detenga todos los servicios e inicie los servicios que se ocupan de la creación, de la propagación y del almacenamiento de certificados.
    service-control --stop --all
    service-control --start vmafdd
    service-control --start vmdird
    service-control --start vmcad
    
  5. Agregue el certificado nuevo a VECS.
    Todas las máquinas necesitan el certificado nuevo en el almacén de certificados local para comunicarse mediante SSL. Primero debe eliminar la entrada existente y, a continuación, agregar la nueva.
    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 los servicios.
    service-control --start --all

Ejemplo: Reemplazo de certificados SSL de máquina (VMCA es la CA intermedia)

  1. Cree un archivo de configuración para el certificado SSL y guárdelo como ssl-config.cfg en el directorio actual.
    Country = US
    Name = vmca-<FQDN-example>
    Organization = VMware
    OrgUnit = VMware Engineering
    State = California 
    Locality = Palo Alto
    Hostname = <FQDN>
  2. Genere un par de claves para el certificado SSL de máquina. En una implementación de varias instancias de vCenter Server conectadas en la configuración de Enhanced Linked Mode, ejecute este comando en cada nodo de vCenter Server.
    /usr/lib/vmware-vmca/bin/certool --genkey --privkey=ssl-key.priv --pubkey=ssl-key.pub
    

    Los archivos ssl-key.priv y ssl-key.pub se crean en el directorio actual.

  3. Genere el nuevo certificado SSL de máquina. Este certificado está firmado por VMCA. Si reemplazó el certificado raíz de VMCA por un certificado personalizado, VMCA firma todos los certificados con la cadena completa.
    /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vmca-ssl.crt --privkey=ssl-key.priv --config=ssl-config.cfg

    El archivo new-vmca-ssl.crt se crea en el directorio actual.

  4. (Opcional) Enumere el contenido de VECS.
    /usr/lib/vmware-vmafd/bin/vecs-cli store list
    • Ejemplo de salida en 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. Reemplace el certificado SSL de máquina en VECS por el nuevo certificado SSL de máquina. Los valores --store y --alias tienen que coincidir exactamente con los nombres predeterminados.
    • En cada instancia de vCenter Server, ejecute los siguientes comandos para actualizar el certificado SSL de máquina en el almacén MACHINE_SSL_CERT. Debe actualizar el certificado para cada máquina por separado, ya que cada una de ellas tiene un 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
      

Reemplazar certificados de usuario de solución (entidad de certificación intermedia) mediante la CLI

Después de reemplazar los certificados SSL de máquina, puede usar el CLI para reemplazar los certificados de usuarios de solución.

Muchos clientes de VMware no reemplazan los certificados de usuario de las soluciones. Reemplazan solo los certificados SSL de los equipos con certificados personalizados. Este enfoque híbrido satisface los requisitos de sus equipos de seguridad.
  • Los certificados se sientan detrás de un proxy, o bien son certificados personalizados.
  • No se utilizan CA intermedias.

Se reemplaza el certificado de usuario de solución de la máquina y el certificado de usuario de solución en cada sistema vCenter Server.

Nota: Cuando se enumeran certificados de usuario de solución en implementaciones de gran tamaño, el resultado de /usr/lib/vmware-vmafd/bin/dir-cli list incluye todos los usuarios de solución de todos los nodos. Ejecute /usr/lib/vmware-vmafd/bin/vmafd-cli get-machine-id --server-name localhost para encontrar el identificador de máquina local para cada host. El nombre del usuario de solución incluye el identificador de máquina.

Requisitos previos

Cada certificado de usuario de solución debe tener un Subject diferente. Por ejemplo, considere incluir el nombre de usuario de solución (como vpxd) u otro identificador único.

Procedimiento

  1. Haga una copia de certool.cfg, quite los campos Nombre, Dirección IP, Correo electrónico y Nombre DNS, y cambie el nombre del archivo: por ejemplo, a sol_usr.cfg.
    Se pueden nombrar los certificados desde la línea de comandos como parte de la generación. La otra información no es necesaria para los usuarios de solución. Si se deja la información predeterminada, los certificados generados podrían resultar confusos.
  2. Genere un par de archivos de clave pública/privada y un certificado para cada usuario de solución y pase el archivo de configuración que recién personalizó.
    Por ejemplo:
    certool --genkey --privkey=vpxd.priv --pubkey=vpxd.pub
    certool --gencert --privkey=vpxd.priv --cert vpxd.crt --Name=VPXD_1 --config sol_usr.cfg
  3. Busque el nombre de cada usuario de solución.
    /usr/lib/vmware-vmafd/bin/dir-cli service list 
    
    Puede usar el identificador único que se devuelve al reemplazar los certificados. La entrada y la salida deben verse de la siguiente manera.
    /usr/lib/vmware-vmafd/bin/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
    En una implementación de varias instancias de vCenter Server conectadas en la configuración de Enhanced Linked Mode, el resultado de /usr/lib/vmware-vmafd/bin/dir-cli service list incluye todos los usuarios de solución de todos los nodos. Ejecute /usr/lib/vmware-vmafd/bin/vmafd-cli get-machine-id --server-name localhost para encontrar el identificador de máquina local para cada host. El nombre del usuario de solución incluye el identificador de máquina.
  4. Detenga todos los servicios e inicie los servicios que se ocupan de la creación, de la propagación y del almacenamiento de certificados.
    service-control --stop --all
    service-control --start vmafdd
    service-control --start vmdird
    service-control --start vmcad
    
  5. Reemplace el certificado que ya existe primero en vmdir y después en VECS.
    Debe agregar los certificados en ese orden para los usuarios de solución. Por ejemplo:
    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
    
    Nota: Los usuarios de solución no pueden iniciar sesión en vCenter Single Sign-On si no reemplaza el certificado en vmdir.
  6. Reinicie todos los servicios.
    service-control --start --all

Ejemplo: Reemplazo de certificados de usuarios de solución (entidad de certificación intermedia)

  1. Genere un par de claves pública/privada para cada usuario de solución en cada nodo de vCenter Server en una configuración de Enhanced Linked Mode. Esto incluye un par para la solución de máquina y un par para cada usuario de solución adicional (vpxd, vpxd-extension, vsphere-webclient, wcp).
    1. Genere un par de claves para el usuario de solución de la máquina.
      /usr/lib/vmware-vmca/bin/certool --genkey --privkey=machine-key.priv --pubkey=machine-key.pub
      
    2. Genere un par de claves para el usuario de solución vpxd en cada nodo.
      /usr/lib/vmware-vmca/bin/certool --genkey --privkey=vpxd-key.priv --pubkey=vpxd-key.pub
    3. Genere un par de claves para el usuario de solución vpxd-extension en cada nodo.
      /usr/lib/vmware-vmca/bin/certool --genkey --privkey=vpxd-extension-key.priv --pubkey=vpxd-extension-key.pub
    4. Genere un par de claves para el usuario de solución vsphere-webclient en cada nodo.
      /usr/lib/vmware-vmca/bin/certool --genkey --privkey=vsphere-webclient-key.priv --pubkey=vsphere-webclient-key.pub
    5. Genere un par de claves para el usuario de solución wcp en cada nodo.
      /usr/lib/vmware-vmca/bin/certool --genkey --privkey=wcp-key.priv --pubkey=wcp-key.pub
  2. Genere certificados de usuario de solución que estén firmados con el nuevo certificado raíz de VMCA para el usuario de solución de la máquina y para cada usuario de solución adicional (vpxd, vpxd-extension, vsphere-webclient, wcp) en cada nodo de vCenter Server.
    Nota: El parámetro --Name tiene que ser único. Al incluir el nombre del almacén del usuario de solución, resulta más fácil ver qué certificado se asigna a cada usuario de solución. El ejemplo incluye el nombre, por ejemplo, vpxd o vpxd-extension en cada caso.
    1. Haga una copia del archivo /usr/lib/vmware-vmca/share/config/certool.cfg y, a continuación, modifique o elimine los campos Nombre, Dirección IP, Nombre de DNS y Correo electrónico según sea necesario, y cambie el nombre del archivo (por ejemplo, a sol_usr.cfg).
    2. Genere un certificado para el usuario de solución de la máquina en cada nodo.
      /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-machine.crt --privkey=machine-key.priv --Name=machine --config sol_usr.cfg
    3. Genere un certificado para el usuario de solución vpxd en cada nodo.
      /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vpxd.crt --privkey=vpxd-key.priv --Name=vpxd --config sol_usr.cfg
      
    4. Genere un certificado para el usuario de solución vpxd-extensions en cada nodo.
      /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vpxd-extension.crt --privkey=vpxd-extension-key.priv --Name=vpxd-extension --config sol_usr.cfg
    5. Ejecute el siguiente comando para generar un certificado para el usuario de solución vsphere-webclient en cada nodo.
      /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vsphere-webclient.crt --privkey=vsphere-webclient-key.priv --Name=vsphere-webclient --config sol_usr.cfg
    6. Ejecute el siguiente comando para generar un certificado para el usuario de solución wcp en cada nodo.
      /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-wcp.crt --privkey=wcp-key.priv --Name=wcp --config sol_usr.cfg
  3. Reemplace los certificados de usuario de solución en VECS por los nuevos certificados de usuario de solución.
    Nota: Los parámetros --store y --alias tienen que coincidir exactamente con los nombres predeterminados de los servicios.
    1. Reemplace el certificado de usuario de solución de la máquina en cada nodo:
      /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. Reemplace el certificado de usuario de solución vpxd en cada nodo.
      /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. Reemplace el certificado de usuario de solución vpxd-extension en cada nodo.
      /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. Reemplace el certificado de usuario de solución vsphere-webclient en cada nodo.
      /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. Reemplace el certificado de usuario de solución wcp en cada nodo.
      /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. Actualice VMware Directory Service (vmdir) con los nuevos certificados de usuarios de solución. Se solicita una contraseña de administrador de vCenter Single Sign-On.
    1. Ejecute /usr/lib/vmware-vmafd/bin/dir-cli service list para obtener el sufijo de identificador único de servicio para cada usuario de solución. Este comando se ejecuta en un 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
      Nota: Cuando se enumeran certificados de usuario de solución en implementaciones de gran tamaño, el resultado de /usr/lib/vmware-vmafd/bin/dir-cli list incluye todos los usuarios de solución de todos los nodos. Ejecute /usr/lib/vmware-vmafd/bin/vmafd-cli get-machine-id --server-name localhost para encontrar el identificador de máquina local para cada host. El nombre del usuario de solución incluye el identificador de máquina.
    2. Reemplace el certificado de máquina en vmdir en cada nodo de vCenter Server. Por ejemplo, si machine-6fd7f140-60a9-11e4-9e28-005056895a69 es el usuario de solución de la máquina en vCenter Server, ejecute el siguiente comando:
      /usr/lib/vmware-vmafd/bin/dir-cli service update --name machine-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-machine.crt
    3. Reemplace el certificado de usuario de solución vpxd en vmdir en cada nodo. Por ejemplo, si vpxd-6fd7f140-60a9-11e4-9e28-005056895a69 es el identificador de usuario de solución vpxd, ejecute el siguiente comando:
      /usr/lib/vmware-vmafd/bin/dir-cli service update --name vpxd-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vpxd.crt
    4. Reemplace el certificado de usuario de solución vpxd-extension en vmdir en cada nodo. Por ejemplo, si vpxd-extension-6fd7f140-60a9-11e4-9e28-005056895a69 es el identificador de usuario de solución vpxd-extension, ejecute el siguiente comando:
      /usr/lib/vmware-vmafd/bin/dir-cli service update --name vpxd-extension-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vpxd-extension.crt
      
    5. Reemplace el certificado de usuario de solución vsphere-webclient en cada nodo. Por ejemplo, si vsphere-webclient-6fd7f140-60a9-11e4-9e28-005056895a69 es el identificador de usuario de solución vsphere-webclient, ejecute el siguiente comando:
      /usr/lib/vmware-vmafd/bin/dir-cli service update --name vsphere-webclient-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vsphere-webclient.crt
      
    6. Reemplace el certificado de usuario de solución wcp en cada nodo. Por ejemplo, si wcp-1cbe0a40-e4ce-4378-b5e7-9460e2b8200e es el ID del usuario de solución wcp, ejecute este comando:
      /usr/lib/vmware-vmafd/bin/dir-cli service update --name wcp-1cbe0a40-e4ce-4378-b5e7-9460e2b8200e --cert new-wcp.crt