Servicios de certificados de Active Directory de Windows (ADCS) con proxy PKI

Este documento describe la configuración de los Servicios de certificados de Active Directory (ADCS) de Windows con PKI Proxy y NetHSM.

Prerequisits

  • NetHSM

    • Provisioned

    • Administrative access

  • PKI Proxy server

    • Módulo NetHSM PKCS#11 instalado y configurado para utilizar el NetHSM

  • Servidor CA (Windows Server)

    • ADCS role installed, but not configured

    • PKI Proxy client tools installed

    • No es necesario disponer de herramientas de cliente si este servidor también ejecuta el servidor PKI Proxy, ya que este incluye dichas herramientas.

    • Pynitrokey installed

Root CA Key and Certificate

En la siguiente tabla se enumeran los algoritmos de clave y las longitudes de clave, junto con los algoritmos hash que el ADCS de Windows puede utilizar con NetHSM.

Key Algorithm

Key Length

Hash Algorithm

RSA

1024

MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512

2048

MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512

4096

MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512

ECDSA

P256

SHA1, SHA256, SHA385, SHA512

P384

SHA1, SHA256, SHA385, SHA512

P521

SHA1, SHA256, SHA385, SHA512

Importante

Sigue las prácticas recomendadas para seleccionar un algoritmo de clave seguro, una longitud adecuada y un algoritmo de hash.

Una clave y un certificado pueden generarse de nuevo o bien migrarse desde uno ya existente. Consulte los subcapítulos que figuran a continuación para obtener más información sobre el procedimiento que debe seguir en su caso concreto.

Generate a new Root CA Key and Certificate on Windows

Las siguientes instrucciones permiten crear una nueva clave y un nuevo certificado para su uso en una CA raíz de ** en ADCS.

Truco

Normalmente resulta más sencillo generar una clave y un certificado con el asistente de configuración de ADCS y, a continuación, seguir las instrucciones de Migrar la clave y el certificado existentes.

En este caso, se utiliza una plantilla de solicitud para generar una clave con extensiones de CA explícitas. Los valores concretos deben adaptarse a tu entorno.

La plantilla de solicitud debe guardarse en un archivo con el nombre « ` » RootCA.inf` y con el siguiente contenido.

Esta plantilla generará una clave RSA con una longitud de 4096 bits. Debes sustituir <CA-NAME> por el nombre de tu CA.

[Version]
Signature="$Windows NT$"

[NewRequest]
Subject = "CN=<CA-NAME>"
KeySpec = 1
KeyLength = 4096
Exportable = TRUE
MachineKeySet = TRUE
SMIME = FALSE
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
ProviderName = "Microsoft Software Key Storage Provider"
ProviderType = 0
RequestType = Cert
KeyUsage = 0x86

[Extensions]
; Key Usage: keyCertSign (0x04) + cRLSign (0x02) => 0x06
2.5.29.15 = "{critical}86"

; Basic Constraints: CA = TRUE, path length optional
2.5.29.19 = "{critical}{text}CA=TRUE"

; CA Version (V0.0)
1.3.6.1.4.1.311.21.1 = "{hex}02 01 00"

[RequestAttributes]
; Empty for self-signed request

Generate the key and certificate from the certificate template.

certreq -new RootCA.inf RootCA.req

El certificado se ha añadido al almacén de certificados del equipo local. Exporta el certificado a un archivo PFX, sustituyendo <THUMBPRINT> por el valor correspondiente de la salida del comando anterior.

$password = Read-Host -AsSecureString "Password"
Export-PfxCertificate -Cert Cert:\LocalMachine\My\<THUMBPRINT> -FilePath RootCA.pfx -Password $password

El valor de la contraseña se utiliza para cifrar el archivo PKCS#12 (archivo PFX). Puedes continuar con el capítulo Configuración de NetHSM.

Migrate existing Key and Certificate

Para migrar una clave y un certificado existentes, es necesario exportarlos desde el almacén de certificados del ADCS e importar el archivo resultante al NetHSM.

Importante

Antes de realizar cambios en una autoridad de certificación de producción, se recomienda crear una copia de seguridad de la misma. Para obtener más información, consulta esta página: ` <https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/manage/component-updates/ca-backup-and-restore-windows-powershell-cmdlets>` __.

  1. Abre certlm.msc.

  2. Accede a « » > «Certificados» > «Equipo local» → «Personal» → «Certificados».

  3. Select the certificate in the list on the right.

  4. En la barra de menús de la parte superior, ve a « » → «Acción» → «Todas las tareas» → «Exportar…». De este modo se iniciará el asistente de exportación de certificados de ** .

  5. Confirm the introduction of the assistant with Next.

  6. Marca la casilla de selección situada junto a « » (Sí, exportar la clave privada) y confirma con « » (Siguiente). Si la casilla de selección no está disponible, la clave está marcada como no exportable. En ese caso, esta guía no es aplicable al caso de uso previsto.

  7. Incluye todos los certificados de la ruta de certificación, si es posible.

  8. Marca la casilla de selección situada junto a « » (Sí, exportar la clave privada) y confirma con « » (Siguiente).

  9. Marca la casilla de selección situada junto a « : Intercambio de información personal - PKCS #12 (.PFX) ». Asegúrate de marcar las siguientes opciones:

    • Incluye todos los certificados de la ruta de certificación, si es posible.

    • Exportar todas las propiedades ampliadas

    • Enable certificate privacy

    Confirm the selection with Next.

  10. Marca la casilla de selección situada junto a « » (Contraseña). Introduce una contraseña en los campos de texto correspondientes. En el menú desplegable situado junto a « Encryption» (Cifrado), selecciona « » (Cifrado) AES256-SHA256.

    Importante

    El método de cifrado AES256-SHA256 solo es compatible a partir de Windows Server 2019 y Windows 11. Para utilizarlo en versiones anteriores, mantén la configuración predeterminada TripleDES-SHA1.

    Confirm the selection with Next.

  11. Choose a storage location and file name and confirm with Next.

    Importante

    La clave y el certificado exportados deben guardarse en un lugar seguro, al que solo puedan acceder los usuarios autorizados.

  12. Confirm the export with Finish.

  13. Asegúrate de que el certificado siga seleccionado en la lista de la derecha.

  14. En la barra de menús de la parte superior, ve a « » → «Acción» → «Todas las tareas» → «Eliminar». Confirma la eliminación de la clave privada y el certificado con « » «Sí».

Puedes continuar con el capítulo Configuración de NetHSM.

NetHSM Configuration

Es necesario importar la clave y el certificado del capítulo anterior al NetHSM. Con el comando « nitropy» podemos importar el archivo PKCS#12 directamente al NetHSM.

Importa el archivo PKCS#12 de la siguiente manera, sustituyendo <KEY-ID>, <MECHANISM> y <PKCS12-ARCHIVE> por los valores correspondientes.

nitropy nethsm import-pkcs12 -k <KEY-ID> -m <MECHANISM> -p <password> <PKCS12-ARCHIVE>

En el caso de las claves RSA, el mecanismo debe ser rsa_signature_pkcs1 y, en el caso de las claves ECDSA, ecdsa_signature.

Ahora puedes comprobar que el certificado está disponible en el NetHSM.

nitropy nethsm list-keys

La clave aparecerá en la lista con el ID de clave indicado en el comando anterior.

PKI Proxy Server Configuration

En el servidor proxy PKI, debes compartir el certificado que acabas de añadir desde el NetHSM. Sigue los pasos que se indican en « : Publish Certificates from the NetHSM» para obtener más información.

Windows ADCS Configuration

PKI Proxy Client Tools Configuration

A continuación, incorporamos la clave y el certificado al almacén de certificados local de Windows.

  1. Open the PKI Proxy Certificate Manager.

  2. Click the Add… button.

  3. Rellena los campos obligatorios.

    • Ubicación, p. ej., https://localhost:9266

    • Autenticación

    • User

    • Secret Key/Password/SPN

    • Certificate Store: LOCALMACHINE\My

    Confirm the configuration with the OK button. This will bring you back to the previous window.

  4. The list under Certificate Management in the PKI Proxy Certificate Manager should now show the just added certificate.

Ahora puedes comprobar que el certificado está disponible en el almacén de certificados del equipo local.

  1. Abre el cuadro de diálogo « » (Ejecutar), ya sea haciendo clic con el botón derecho del ratón en el menú de inicio de Windows **** y seleccionando « » (Ejecutar), o pulsando la tecla Windows + R **** en el teclado.

  2. En el cuadro de diálogo « » (Ejecutar), escribe certlm.msc y confirma pulsando . Escribe en el teclado o haz clic en Aceptar.

  3. En el gestor de certificados que aparece, navega por la estructura de árbol de la izquierda hasta « » (Certificados) - «Local Computer» (Equipo local) → «Personal» → «Certificates» (Certificados).

  4. The published certificate is now listed on the right.

Windows ADCS Configuration

  1. Abre el Administrador del servidor de **** desde el menú Inicio de **** o pulsando la tecla Windows + R en el teclado e introduce ServerManager.exe.

  2. En la barra de menús situada en la esquina superior derecha, haz clic en el icono de la bandera y selecciona « » (Configurar los servicios de certificados de Active Directory en el servidor de destino ) en las notificaciones posteriores a la implementación. De este modo se iniciará el asistente « » (Configuración de AD CS).

  3. In the wizard, set the settings below according to the stage.

    • Role Services

      Check the radio button next to Certification Authority.

    • Setup Type

      Selecciona (CA empresarial) o (CA independiente), en función de tu entorno.

    • CA Type

      Seleccionar la CA raíz « »

    • Private Key

      Marca la casilla de selección situada junto a « » (Usar clave privada existente). En esta opción, marca la casilla de selección situada junto a « » (Seleccionar un certificado y utilizar sus claves privadas asociadas).

      • Existing Certificate

        En la lista de certificados de **** , selecciona el certificado que desees utilizar. Asegúrate de que la casilla situada junto a « » (Permitir la interacción del administrador cuando la CA acceda a la clave privada) no esté marcada. Esto no es necesario, ya que el KSP de PKI Proxy no requiere ninguna autenticación adicional para utilizar la clave privada.

  4. Una vez finalizado el asistente de configuración, abre la Autoridad de Certificación de « » desde el menú Inicio de **** o pulsando la tecla Windows + R en el teclado e introduciendo certsrv.msc. Puedes comprobar que el servicio de la autoridad de certificación se ha iniciado correctamente cuando veas un icono de un punto verde con una marca de verificación blanca junto al nombre de la autoridad de certificación.

Importante

La disponibilidad de la autoridad de certificación depende de la disponibilidad de la clave privada y del certificado. Si no están disponibles, es posible que el servicio de la autoridad de certificación no se inicie o se detenga de forma inesperada. En caso de error, consulta el registro de eventos de Windows « » ( ) para obtener más información.