Reemplazo De Certificados Para ESXi 6.x

Alguna vez en nuestra profesión hemos tenido clientes que por cumplimiento de las políticas de seguridad en la compañía, requiere reemplazar los certificados auto-firmados de vSphere (VMCA) por certificados customizados firmados por una Autoridad de Certificación (CA) presente en el dominio.

El procedimiento descrito a continuación demuestra los pasos necesarios para el reemplazo de certificados en los host ESXi de la infraestructura, eliminando así la advertencia de sitio inseguro que aparece en los navegadores web al conectarse al host client e incrementando la seguridad de la plataforma.

image

Referencia:

  • Configuring CA signed certificates for ESXi 6.0 hosts (2113926)
  • Configuring OpenSSL for installation and configuration of CA signed certificates in the vSphere environment (2015387)

Nota: Si el vCenter no cuenta con certificados customizados, primero deberá efectuarse el procedimiento para reemplazar los certificados en los componentes de vCenter y PSC. De lo contrario el host quedará desconectado después del siguiente procedimiento y al reconectarlo generará nuevos certificados auto firmados.

 

PASO 1: Configurar OpenSSL en el equipo de trabajo

1. Descargue la versión Light del OpenSSL haciendo click Aquí

image

2. Ejecute el instalador del Win64OpenSSL_Light-1_1_0h.exe descargado, dejando la ubicación de destino por defecto (C:\OpenSSL-Win64).

image

3. Después de instalar el OpenSSL Light, verifique la creación de la carpeta OpenSSL-Win64 en la raíz del disco C:\

image

4. Cree un backup del archivo openssl.cfg ubicado en la ruta C:\OpenSSL-Win64\bin y luego edítelo cambiando únicamente los valores marcados en color rojo, con los datos personalizado para la empresa.

[ req ]
default_bits = 2048
default_keyfile = rui.key
distinguished_name = req_distinguished_name
encrypt_key = no
prompt = no
string_mask = nombstr
req_extensions = v3_req

[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName = DNS:vc50, IP:10.0.0.10, DNS:vc50.vmware.com

[ req_distinguished_name ]
countryName = US
stateOrProvinceName = NY
localityName = New York
0.organizationName = VMWare
organizationalUnitName = vCenterInventoryService
commonName = vc50.vmware.com

image

5. Guarde el archivo y ciérrelo.

6. Genere el Certificate Signing Request para cada uno de los host de la siguiente forma:

  • Abra un Command Prompt y navegue hasta el directorio del OpenSSL configurado en la instalación anterior (C:\OpenSSL-Win32\bin)
  • Ejecute el comando: openssl req -new -nodes -out rui.csr -keyout rui-orig.key -config openssl.cfg
  • Convierta la clave (Key) en formato RSA ejecutando el siguiente comando: openssl rsa -in rui-orig.key -out rui.key
  • Una vez el rui.csr es creado, proceda a firmarlo en la Autoridad de Certificación (CA) de la compañía.

image

 

PASO 2: Firme el Certificado con la CA de la compañía

1. Crea una plantilla personalizada para la creación de certificados. Para obtener más información, consulte Creating a Microsoft Certificate Authority Template for SSL certificate creation in vSphere 6.x (2112009)

2. Inicie sesión en la interfaz web de la autoridad certificadora de CA de Microsoft. Por defecto, es http: //servidorCA_FQDN/CertSrv/.

3. Haga clic en el enlace Request a certificate (.csr ).

clip_image001

4. Haga clic en advanced certificate request.

clip_image002

5. Haga clic en Submit a certificate request by using a base-64-encoded CMC or PKCS #10 file, or submit a renewal request by using a base-64-encoded PKCS #7 file.

6. Abra la solicitud de certificado generada anteriormente (rui.csr) en un editor de texto sin formato y copie desde —–BEGIN CERTIFICATE REQUEST—– hasta —–END CERTIFICATE REQUEST—–, sin que queden espacios al final y péguelo en el cuadro Saved Request.

7. Seleccione la plantilla de certificado creada en el punto 1, vSphere 6.5.

clip_image003

8. Haga clic en Submit para enviar la solicitud.

9. Haga clic en Base 64 encoded en la pantalla de Certificado emitido.

10. Haga clic en el enlace Download Certificate.

11. Guarde el certificado como rui.crt.

Nota: No guarde el certificado con otro nombre diferente a rui.crt, ya que no funcionaría.

 

PASO 3: Instalar y configurar los certificados en el host ESXi

1. Inicie sesión en el vCenter Server a través del Web Client y coloque el host en Modo Mantenimiento.

2. Utilizando WinSCP inicie sesión al host ESXi y descargue localmente los archivos rui.crt y el rui.key que se encuentran en la ruta /etc/vmware/ssl, para tener un backup de los mismos.

image

3. Elimine los archivos existentes rui.crt y rui.key de la ruta /etc/vmware/ssl

4. Suba los nuevos archivos rui.crt y rui.key, generados en el PASO 1, a la misma carpeta (/etc/vmware/ssl). Utilice la Opción de Transferencia en modo texto para evitar la aparición de caracteres adicionales.

image

5. Antes de reiniciar los Management Agents para aplicar el reemplazo del certificado, verifique que el nuevo rui.crt y el rui.key no tengan caracteres especiales después de la línea de fin (no debería aparecer ningún carácter erróneo ^M).

imageimage

6. Reinicie los Management Agents del servidor desde DCUI Troubleshooting Options > Restart Management Agents. Presione F11 para reiniciar.

image

7. Verifique la aplicación de los certificados customizados con un navegador como Internet Explorer o Google Chrome.

imageimage

8. Saque el host de Modo Mantenimiento y repita cada uno de los pasos para todos los hosts de la infraestructura.

Reemplazo de certificados vCenter Server 6.5 U1 con PSC embebido

Existen varias opciones para reemplazar los certificados de la infraestructura vSphere y esta tarea puede contar con más o menos pasos de ejecución, sin ser necesariamente difícil, dependiendo del nivel de seguridad que espera la compañía.

clip_image001[71]

Este artículo está orientado a aplicar el método de reemplazo Hibrido que es suficiente y recomendado para la mayoría de las compañías que buscan cumplir con un estándar de seguridad. Este método se centra en el reemplazado únicamente de los certificados Machine SSL de vCenter dejando la tarea de firmar los Solution User y los Certificados de los hosts a la CA (Certificate Authority) de VMware denominada VMCA (VMware Certificate Authority) alojada en el PSC, conociéndose este proceso como certificados auto firmados.

Para un vCenter Server con PSC (Platform Service Controller) embebido, VMCA estará alojada dentro del mismo Appliance, sin embargo; para un despliegue de vCenter Server Con PSC Externo, estará alojada dentro del appliance de PSC y no dentro del appliance del vCenter.

Para iniciar el proceso de reemplazo de certificados SSL en un vCenter Server 6.5 U1 con Platform Service Controller Embebido o Externo se deben tener en cuenta los siguiente KB oficiales de los cuales se ha extraído de manera simple y grafica los pasos para su correcta aplicación, de manera que no exista problema en la ejecución del mismo.

Nota: Si se cuenta con un despliegue de vCenter con PSC Externo basta con realizar el procedimiento descrito a continuación primero en el PSC y después en el vCenter, pero para mayor entendimiento crearemos un nuevo artículo para ese caso específico.

Referencias:

1. Replacing default certificates with CA signed SSL certificates in vSphere 6.x (2111219)

2. Creating a Microsoft Certificate Authority Template for SSL certificate creation in vSphere 6.x (2112009)

3. Obtaining vSphere certificates from a Microsoft Certificate Authority (2112014)

4. Replacing a vSphere 6.x Machine SSL certificate with a Custom Certificate Authority Signed Certificate (2112277)

PASO 1: Creación de una plantilla Microsoft Certificate Authority para la creación de certificados SSL en vSphere 6.x.

Para realizar esta tarea nos podemos apoyar en el KB2112009 mencionado en las referencias, sin embargo, el procedimiento es detallado a continuación.

1. Al conectarse al servidor CA, generará los certificados a través de una sesión RDP.

2. Haga clic en Inicio> Ejecutar, escriba certtmpl.msc y haga clic en OK.

3. En la Consola de plantilla de certificado, en Nombre de visualización de la plantilla, haga clic con el botón derecho en Web Server y haga clic en Duplicar plantilla.

image

4. En la ventana Plantilla duplicada, seleccione Windows Server 2003 Enterprise para compatibilidad con versiones anteriores.

Nota: Si tiene un nivel de cifrado superior a SHA1, seleccione Windows Server 2008 Enterprise.

clip_image001[3]

5. Haga clic en la pestaña General.

6. En el campo Nombre de visualización de la plantilla, ingrese vSphere 6.x como el nombre de la nueva plantilla.

clip_image001[7]

7. Haga clic en la pestaña Extensiones.

8. Seleccione las políticas de la aplicación y haga clic en Editar.

clip_image001[9]

9. Seleccione Server Authentication y haga clic en Remove, luego en OK.

Nota: Si existe Client Authentication, elimine esto de las Application Policies también.

clip_image001[11]

10. Seleccione Key Usage y haga clic en Editar.

clip_image001[13]

11. Seleccione la opción Signature is proof of origin (nonrepudiation). Deje todas las demás opciones como predeterminadas.

12. Haga clic en OK.

clip_image001[15]

13. Haga clic en la pestaña Subject Name.

14. Asegúrese de que la opción Supply in the request esté seleccionada.

clip_image001[17]

15. Haga clic en OK para guardar la plantilla.

16. Proceda a la sección Adding a new template to certificate templates para que la plantilla de certificado recién creada esté disponible.

clip_image001[19]

image

PASO 2: Generar los Request Certificate para el vCenter Server

Debido a que vamos a necesitar un repositorio para alojar los archivos de Certificate Signing Request (.CSR) y el Private Key, necesitamos ingresar al appliance a través de la herramienta libre WINSCP con usuario root, para crear uno en la carpeta temporal. Este paso no es necesario y puede definirse directamente el destino como /tmp o cualquier otro directorio con permisos de escritura dentro del appliance. Sin embargo, para tener un mejor orden, lo vamos a crear.

Como configuración predeterminada vCenter o PSC Appliances, no permite la conexión remota de WinSCP, por lo que es necesario habilitarlo de la siguiente forma:

1. Inicie una conexión SSH al dispositivo vCenter Server.

2. Proporcione el nombre de usuario y la contraseña del usuario root cuando se le solicite.

3. Ejecute este comando para habilitar el shell Bash:

shell.set –enable True

4. Ejecute este comando para acceder al shell Bash:

Shell

5. En el shell Bash, ejecute este comando para cambiar el shell predeterminado a Bash:

Chsh -s /bin/bash root

clip_image001[21]

Nota: Los pasos anteriormente mencionados corresponden al VMware KB Error when uploading files to vCenter Server Appliance using WinSCP (2107727).

Ahora ya podrá realizar una conexión remota con WinSCP. Una vez inicie sesión vaya al directorio raíz, después nos muévase hasta el directorio /tmp y haga click en el icono de nuevo directorio para crear la carpeta Cert, en la que posteriormente guardaremos y cargaremos nuestros archivos asociados a los certificados.

clip_image001[23]

Nota: Si cuenta con un despliegue de vCenter Server con un PSC Embebido, habrá un certificado de Machine SSL. Sin embargo, Si tiene un vCenter Server con un PSC externo, cada máquina (PSC y vCenter) tendrá su propio certificado Machine SSL. Por lo tanto, debe realizar esta tarea en cada máquina.

6. Para reemplazar el certificado de Machine SSL con el certificado de CA personalizado:

Inicie el vSphere 6.x Certificate Manager:

Para vCenter Server 6.x Appliance:

/usr/lib/vmware-vmca/bin/certificate-manager

Para vCenter Server 6.x Windows:

C:\Archivos de programa\VMware\vCenter Server\vmcad\certificate-manager

7. Seleccione la opción 1 (Reemplazar certificado SSL de máquina con certificado personalizado)

clip_image001[25]

8. Proporcione la contraseña de administrator@vsphere.local cuando se le solicite

9. Seleccione la Opción 1 (Generate Certificate Signing Request(s) and Key(s) for Machine SSL certificate)

10. Ingrese el directorio en el que desea guardar el Certificate Signing Request (solicitud de firma de certificado con extensión. CSR) y el Private Key (clave privada). Para este caso se utilizará el directorio creado anteriormente /tmp/Cert

clip_image001[27]

A continuación, debe seguir un asistente que le preguntará los datos asociados a su compañía para poder crear certificados customizados.

Para este caso de laboratorio se utilizarán los siguientes datos como ejemplo:

Country: CO

Name: mhvcentersa07.xxxxxxx.red

Organization: Lab

OrgUnit: Tecnologia

State: Cundinamarca

Locality: Bogota

IPAddress (optional):

Email: dgt_g_sistemas_operativos@xxxxxxxx.gov.co

Hostname: mhvcentersa07.xxxxxxx.red

VMCA Name: mhvcentersa07.xxxxxxx.red

A diferencia de vSphere 6.0 Update 3, en vSphere 6.5 y versiones siguientes aparecerá el siguiente aviso:

Ingrese el valor correcto para VMCA ‘Nombre’:

Este valor es el FQDN de la máquina en la que se ejecuta la configuración del certificado, para este caso es el FQDN del vCenter Server Appliance.

image

Los archivos creados en el directorio /tmp/Cert tendrán los nombres vmca_issued_csr.csr y vmca_issued_key.key.

Descárguelos localmente con la Opción de Transferencia “Texto” para evitar que se agreguen caracteres al final del archivo.

image

PASO 3: Obtención de certificados de vSphere de una entidad emisora de certificados de Microsoft

1. Proporcione el vmca_issued_csr.csr a su autoridad de certificación para generar un certificado SSL de máquina, asígnele el nombre machine_name_ssl.cer. Para obtener más información, consulte Obtaining vSphere certificates from a Microsoft Certificate Authority (2112014).

2. Inicie sesión en la interfaz web de la autoridad certificadora de CA de Microsoft. Por defecto, es http: // servidor CA_FQDN / CertSrv /.

3. Haga clic en el enlace Request a certificate (.csr ).

clip_image001[33]

4. Haga clic en advanced certificate request.

clip_image001[35]

5. Haga clic en Submit a certificate request by using a base-64-encoded CMC or PKCS #10 file, or submit a renewal request by using a base-64-encoded PKCS #7 file.

6. Abra la solicitud de certificado descargada anteriormente vmca_issued_csr.csr en un editor de texto sin formato y copie desde —–BEGIN CERTIFICATE REQUEST—– hasta —–END CERTIFICATE REQUEST—–, sin que queden espacios al final y péguelo en el cuadro Saved Request.

clip_image001[37]

7. Seleccione la plantilla de certificado creada en pasos en el PASO 1, vSphere 6.5.

8. Haga clic en Submit para enviar la solicitud.

9. Haga clic en Base 64 encoded en la pantalla de Certificado emitido.

10. Haga clic en el enlace Descargar certificado.

Guarde el certificado como con el nombre que desee, para este caso será vspherelab.cer en un directorio de su equipo puede ser C:\Certs\

clip_image001[39]

11. Vuelva a la página de inicio del servidor de certificados y haga clic en Descargar un certificado de CA, cadena de certificados o CRL.

clip_image001[41]

12. Seleccione la opción Base 64.

13. Haga clic en el enlace de la cadena Descargar certificado de CA.

clip_image001[43]

14. Guarde la cadena de certificados como cachainlab.p7b en la carpeta c:\Certs de su equipo.

15. Haga doble clic en el archivo cachainlab.p7b para abrirlo en el Administrador de certificados.

16. Navegue a C: \Certs\cachainlab.p7b> Certificados.

Por lo general las empresas que utilizan Entidades Certificadoras, tiene por lo menos una Enterprise Root CA Standalone y una o varias CA Subordinadas. En este caso se observan efectivamente dos.

image

17. Haga clic con el botón derecho en cada uno de los certificados listados y haga clic en Todas las acciones> Exportar.

image

18. Haga clic en Siguiente.

19. Seleccione X.509 codificado Base-64 (.CER), y luego haga clic en Siguiente.

clip_image001[49]

20. Si tiene más de una entidad certificadora Subordinada, realice los pasos para exportar, en cada uno de los certificados listados, expórtelos y guárdelos con un nombre que diferencie las subordinadas de la Root, como por ejemplo: C: \certs\interm64-1.cer, C:\certs\interm64-2.cer y C:\certs\Root64.cer.

Para este caso se han elegido los nombres SubCA.cer para la Entidad CA Subordinada y RootCA.cer para la principal.

clip_image001[51]

PASO 4: Crear cadena de certificados

Una de los pasos que podría llegar a confundirnos es la creación de la cadena cuando en la compañía existen más de una CA, es decir una o varias subordinadas de la Root.

Para este caso se debe crear un nuevo certificado que denominaremos RootChain.cer y el cual contendrá la información tanto de la principal como de su subordinada(s) teniendo en cuenta el siguiente orden don de Intermediate son las CA Subordinadas y Root es la Principal:

clip_image001[53]

1. Realice una copia del certificado exportado en el paso anterior para la CA Root y cámbiele el nombre a RootChain.cer

2. Abra el archivo creado RootChain.cer con un editor de texto sin formato

3. También abra el archivo exportado para SubCA.cer con un editor de texto sin formato y copie el contenido desde —–BEGIN CERTIFICATE REQUEST—– hasta —–END CERTIFICATE REQUEST—–, sin que queden espacios al final.

4. Vaya a la ventana del RootChain.cer abierto anteriormente en el editor de texto y pegue el contenido justo encima de —–BEGIN CERTIFICATE REQUEST—–

clip_image001[55]

Recuerde que si tiene más de una CA Subordinada se debe copiar el contenido de cada una de ellas dentro del certificado RootChain.cer respetando el orden ya indicado.

5. Haga click en Archivo -> Guardar y déjelo abierto para posterior uso

6. Una vez creada la cadena RootChain.cer se debe adicionar el contenido de este archivo al certificado emitido por la CA para nuestro vCenter Server Appliance.

Para esto cree una copia del certificado de vCenter obtenido de la CA y cambie el nombre para identificarlo del original, por ejemplo vspherelabfull.cer

clip_image001[57]

7. Vuelva a la ventana de RootChain.cer en el editor de texto y copie todo el contenido del archivo

8. Abra el archivo creado vspherelabfull.cer con un editor de texto sin formato y pegue el contenido del certificado RootChain.cer creado anteriormente, justo debajo de la línea —–END CERTIFICATE REQUEST—– del certificado customizado de vCenter Server.

clip_image001[59]

9. Haga click en Archivo -> Guardar

PASO 5: Importar Certificados Customizados

Ya estamos listos para importar, los certificados al vCenter y ahora se deben cargar los archivos RootChain.cer y vspherelabfull.cer al directorio temporal /tmp/Cert del vCenter Server Appliance a través del WinSCP.

1. Vuelva a la sesión realizada hacia el vCenter Server con el WinSCP

2. Cargue los archivos RootChain.cer y vspherelabfull.cer al directorio temporal /tmp/Cert

Nota: Utilice la Opción de Transferencia “Texto” para evitar adicionar caracteres a los archivos

image

3. Regrese al vSphere 6.x Certificate Manager y seleccione la Opción 1 (Continue to importing Custom certificate(s) and key(s) for Machine SSL certificate).

4. Proporcione la ruta completa a vspherelabfull.cer y vmca_issued_key.key y del certificado RootChain.cer

5. Responda Yes (Y) para continuar la operación

image

6. Espere a que se realice el proceso. Esto puede tardar varios minutos, pero puede ver como se actualizan algunos servicios

image

7. Abra Internet Explorer o Google Chrome, si los tenía abiertos ciérrelos y vuélvalos a abrir. A continuación, digite el FQDN del vCenter y observará que ya no aparece el error de certificado y muestra el sitio como seguro.

Vista desde Internet Explorer

image

Vista desde Google Chrome

image

8. En Internet Explorer haga click sobre el candado y luego Ver Certificados

9. Para obtener más detalle y verificar el cambio haga click en la pestaña Ruta de Certificación

image