Si el certificado raíz de entidad de VMware Certificate Authority (VMCA) está por caducar, o si desea reemplazarlo por otros motivos, puede usar la CLI para generar un certificado raíz nuevo y agregarlo a VMware Directory Service. A continuación, puede generar certificados SSL de máquina y certificados de usuarios de solución nuevos mediante el certificado raíz nuevo.

Use la utilidad vSphere Certificate Manager para reemplazar certificados en la mayoría de los casos.

Si necesita tener un control detallado, este caso ofrece instrucciones detalladas paso a paso para reemplazar el conjunto completo de certificados mediante comandos de CLI. O bien puede reemplazar certificados individuales mediante el procedimiento de la tarea correspondiente.

Requisitos previos

Solo [email protected] u otros usuarios del grupo Administradores de CA pueden realizar tareas de administración de certificados. Consulte Agregar miembros a un grupo de vCenter Single Sign-On.

Generar un nuevo certificado raíz firmado por VMCA mediante la CLI

Puede generar nuevos certificados firmados por VMCA con la CLI certool y publicar los certificados en vmdir.

Procedimiento

  1. En vCenter Server, genere un nuevo certificado autofirmado y una clave privada.
    certool --genselfcacert --outprivkey <key_file_path> --outcert <cert_file_path> --config <config_file>
  2. Reemplace el certificado raíz existente con el nuevo certificado.
    certool --rootca --cert <cert_file_path> --privkey <key_file_path>
    El comando genera el certificado, lo agrega a vmdir y, a continuación, lo agrega a VECS.
  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. (opcional) Publique el nuevo certificado raíz en vmdir.
    dir-cli trustedcert publish --cert newRoot.crt
    
    El comando actualiza todas las instancias de vmdir de manera inmediata. Si no lo ejecuta, la propagación del nuevo certificado a todos los nodos puede tardar un poco.
  5. Reinicie todos los servicios.
    service-control --start --all

Ejemplo: Generar un nuevo certificado raíz firmado por VMCA

El siguiente ejemplo muestra todos los pasos para comprobar la información de la entidad de certificación raíz actual y volver a generar el certificado raíz.
  1. (Opcional) En vCenter Server, enumere el certificado raíz de VMCA para asegurarse de que se encuentre en el almacén de certificados.
    /usr/lib/vmware-vmca/bin/certool --getrootca 
    La salida tiene un aspecto similar al siguiente:
    output:
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number:
                cf:2d:ff:49:88:50:e5:af
        ...
    
  2. (Opcional) Enumere el almacén TRUSTED_ROOTS de VECS y compare el número de serie del certificado con la salida del paso 1.
    /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store TRUSTED_ROOTS --text
    
    En el caso más simple con un solo certificado raíz, la salida tiene un aspecto similar al siguiente:
    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. Genere un nuevo certificado raíz de VMCA. El comando agrega el certificado al almacén TRUSTED_ROOTS en VECS y en vmdir (VMware Directory Service).
    /usr/lib/vmware-vmca/bin/certool --selfca --config=/usr/lib/vmware-vmca/share/config/certool.cfg

Reemplazar los certificados SSL de máquina por certificados firmados por VMCA mediante la CLI

Después de generar un nuevo certificado raíz firmado por VMCA, puede usar el comando vecs-clipara reemplazar todos los certificados SSL de máquina en el entorno.

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

Prepárese para detener todos los servicios y para iniciar los servicios que controlan la propagación y el almacenamiento de certificados.

Procedimiento

  1. Haga una copia de certool.cfg para cada máquina que necesite un certificado nuevo.
    Puede encontrar el archivo certool.cfg 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 archivo 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 machine1.crt --Name=Machine1_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.crt --key machine1.priv
  6. Reinicie todos los servicios.
    service-control --start --all

Ejemplo: Reemplazo de certificados de una máquina por certificados firmados por VMCA

  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 = <my_company>
    OrgUnit = <my_company Engineering>
    State = <my_state> 
    Locality = <mytown>
    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
      

Qué hacer a continuación

También puede reemplazar los certificados de sus hosts ESXi. Consulte la publicación Seguridad de vSphere.

Reemplazar los certificados de usuarios de solución por certificados nuevos firmados por VMCA mediante la CLI

Después de reemplazar los certificados SSL de máquina, puede utilizar el comando dir-cli para reemplazar todos los certificados de usuarios de solución. Los certificados de usuario de solución deben ser válidos, es decir, que no estén caducados, pero la infraestructura de certificados no utiliza ninguna otra información del certificado.

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

Prepárese para detener todos los servicios y para iniciar los servicios que controlan la propagación y el almacenamiento de certificados.

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:
    /usr/lib/vmware-vmca/bin/certool --genkey --privkey=vpxd.priv --pubkey=vpxd.pub 
    /usr/lib/vmware-vmca/bin/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. En cada usuario de solución, reemplace el certificado actual en vmdir y, a continuación, en VECS.
    El siguiente ejemplo muestra cómo reemplazar los certificados del servicio vpxd.
    /usr/lib/vmware-vmafd/bin/dir-cli service update --name <vpxd-xxxx-xxx-7c7b769cd9f4> --cert ./vpxd.crt
    /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 vpxd.crt --key vpxd.priv
    
    Nota: Los usuarios de solución no podrán autenticarse en vCenter Single Sign-On si no se reemplaza el certificado en vmdir.
  6. Reinicie todos los servicios.
    service-control --start --all

Ejemplo: Usar los certificados de usuarios de solución firmados por VMCA

  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
      

Qué hacer a continuación

Reinicie todos los servicios en cada nodo de vCenter Server.