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>` __.
Abre
certlm.msc.Accede a « » > «Certificados» > «Equipo local» → «Personal» → «Certificados».
Select the certificate in the list on the right.
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 ** .
Confirm the introduction of the assistant with Next.
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.
Incluye todos los certificados de la ruta de certificación, si es posible.
Marca la casilla de selección situada junto a « » (Sí, exportar la clave privada) y confirma con « » (Siguiente).
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.
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.
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.
Confirm the export with Finish.
Asegúrate de que el certificado siga seleccionado en la lista de la derecha.
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.
Open the PKI Proxy Certificate Manager.
Click the Add… button.
Rellena los campos obligatorios.
Ubicación, p. ej.,
https://localhost:9266Autenticació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.
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.
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.
En el cuadro de diálogo « » (Ejecutar), escribe
certlm.mscy confirma pulsando . Escribe en el teclado o haz clic en Aceptar.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).
The published certificate is now listed on the right.
Windows ADCS Configuration¶
Abre el Administrador del servidor de **** desde el menú Inicio de **** o pulsando la tecla Windows + R en el teclado e introduce
ServerManager.exe.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).
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.
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.