Publicado el
14 de abril de 2024
Gestionar certificados y sus claves privadas de manera eficiente es crucial para la seguridad de cualquier sistema. Windows Server Active Directory Certificate Services (ADCS) ofrece una plataforma robusta para gestionar certificados dentro de un entorno Windows. Sin embargo, pueden surgir escenarios en los que necesite exportar claves archivadas de la Autoridad de Certificación (CA) y convertirlas a un formato diferente, como pfx. Este procedimiento garantiza que pueda manejar de forma segura esta información sensible mientras mantiene la integridad de su sistema.
[ADCS] Exportar claves privadas archivadas de la base de datos de la autoridad de certificación
Requisitos:
Antes de profundizar en el proceso de exportar y convertir claves archivadas, es esencial asegurarse de que tenga los permisos y herramientas necesarios. Necesitará "Manage CA" y "Issue and manage Certificates" permisos de la autoridad certificadora. Además, acceso a herramientas como MMC (Microsoft Management Console) para agregar y PowerShell.
Los permisos en la Autoridad de Certificación (CA) normalmente incluyen la capacidad de "Administrar CA" y "Emitir y gestionar Certificados," otorgando a los usuarios la autoridad para supervisar y controlar la emisión y gestión de certificados dentro del sistema.
Para facilitar estas tareas, hay varias herramientas disponibles, como la CLI tipo PowerShell, que ofrece flexibilidad y capacidades de scripting para una gestión eficiente. Además, el MMC funciona como una interfaz gráfica, permitiendo a los usuarios agregar componentes cruciales como Plantillas de Certificado, Autoridad de Certificación y Certificados (Usuarios), optimizando el proceso de gestión.
Para acceder a estas herramientas y componentes a través de MMC, los usuarios pueden seguir estos pasos:
Abrir MMC
Navegar "Archivo" menú
Seleccionar "Agregar” o “Eliminar Snap‑ins"
Habilitar archivado de claves
El primer paso es habilitar el archivado de claves dentro del ADCS. Esto implica configurar plantillas de certificado y la propia CA para archivar claves privadas. Aquí tienes cómo hacerlo:
1. Asegúrese de que el usuario actual pueda inscribirse en un Certificado de Agente de Recuperación de Clave ajustando los permisos en las plantillas de certificado. Pasos:
Propiedades > Seguridad
Nota: Si la plantilla del Agente de Recuperación de Clave no está disponible en la sección de plantillas de certificado:
Plantillas de certificado > Nuevo > Plantilla de certificado para emitir > Seleccionar agente de recuperación de claves
2. Inscribir un certificado desde la plantilla del agente de recuperación de claves y validar la solicitud.
Certificados > Usuario actual > Personal > Todas las tareas > Solicitar nuevo certificado.
Aquí, regístrese en la plantilla del Agente de recuperación de claves emitida previamente (la solicitud de certificado puede necesitar validación en las solicitudes pendientes de la CA)
3. Configure la CA para archivar claves seleccionando el certificado apropiado en la pestaña de Agentes de Recuperación.
Vaya a la pestaña “propiedades” del CA (que se utilizará para el archivado de claves) > En la pestaña “Agentes de recuperación”, seleccione archivar la clave.
¿Desea implementar estas prácticas PKI?
Obtenga orientación experta para implementar soluciones PKI seguras para su organización.
Obtener ayuda expertaDebe solicitar el certificado del agente de recuperación de claves emitido previamente.
4. Modificar la plantilla de certificado utilizada para emitir certificados para archivar la clave privada de cifrado del sujeto's.
(Coloque en la plantilla de certificado que se utilizará para emitir certificados desde los cuales la clave privada debe archivarse):
Propiedades > Manejo de solicitudes pestaña > Seleccionar Archivar sujeto's clave privada de cifrado
Ahora los certificados emitidos desde esta plantilla verán sus claves privadas archivadas dentro del servidor ADCS.
5. Asegúrese de que esta plantilla de certificado esté disponible en la lista de plantillas de certificado en el complemento de autoridad de certificación.
Exportando las claves privadas archivadas
Para recuperar las claves archivadas de la base de datos CA, es posible usar el siguiente comando en una carpeta donde el usuario tenga permisos de escritura:
certutil -getkey {número de serie del certificado}
2. Al agregar un nombre de archivo después, se puede guardar como un archivo .bin o .pfx.
Esto recuperará un blob de recuperación de clave privada archivado, generará un script de recuperación o recuperará claves archivadas.
3. De lo contrario, es posible listar los certificados correspondientes, exportarlos a una lista y luego recuperar las claves privadas para convertirlas.
certutil -view -restrict "KeyRecoveryHashes>0" -out SerialNumber csv
Los siguientes atributos también pueden incluirse:
Solicitud: describe el identificador único del certificado en la base de datos de la CA.
Nombre del solicitante: describe al solicitante del certificado.
Número de serie: describe el número de serie único del certificado.
No antes: describe el inicio de la validez del certificado.
No después: describe el fin de la validez del certificado.
Hashes de recuperación de claves: describe con qué certificados de Agente de Recuperación de Clave se archivó la clave privada. Si la clave se archiva con varios certificados KRA, se separan por un "+" signo. Para la recuperación, la clave privada de uno de los certificados KRA debe estar presente.
Por ejemplo:
certutil -view -restrict "KeyRecoveryHashes>0" -out RequestId,RequesterName,SerialNumber,NotBefore,NotAfter,KeyRecoveryHashes csv
Las salidas mencionadas anteriormente pueden guardarse en un archivo añadiendo “> Pathname\filename.txt”
4. Para exportar las claves individuales, ejecute el siguiente comando:
Import-Csv -Path filename.txt | ForEach-Object -Process { certutil -getkey $_."Número de serie" "$($_."Número de serie").bin" }
Notas:
Este comando generará un archivo bin por clave.
El argumento -getkey indica que la clave debe exportarse de la base de datos de la autoridad de certificación a un archivo.
Estas claves siguen cifradas; para descifrarlas deben convertirse al formato pfx (PKCS#12).
Convirtiendo las claves al formato .pfx
Para proceder con éxito, asegúrese de que todos los certificados del Agente de Recuperación de Claves (KRA), junto con sus claves privadas, estén instalados o accesibles. Si no, importe los certificados KRA faltantes para evitar este error:
Error de descifrado: No se encontró el certificado y la clave privada requeridos para la descifrado.
A considerar: En el siguiente ejemplo, se utiliza la misma contraseña para todas las claves exportadas, por lo que la seguridad de todas las claves depende del conocimiento de esta única contraseña.
Este enfoque, por lo tanto, no se recomienda en la práctica. Se deben usar contraseñas fuertes, generadas aleatoriamente y, sobre todo, contraseñas únicas para cada clave, lo que podría implementarse con una lógica de programa correspondientemente más compleja.
Para convertir las claves exportadas al formato .pfx (PKCS#12), ejecute el siguiente comando y especifique la contraseña deseada:
Import-Csv -Path keyscsv.txt | ForEach-Object -Process { certutil -p "P@$$w0rd" -recoverkey "$($_."Serial Number").bin" "$($_."Serial Number").pfx"}
Nota: Si la etiqueta -p no está especificada, se le pedirá al usuario una contraseña a través de la CLI.
Conclusión
Exportar y convertir claves archivadas de un ADCS de Windows Server es un proceso crítico en la gestión de certificados. Siguiendo los pasos descritos anteriormente, puedes garantizar que tu información confidencial permanezca segura y, al mismo tiempo, sea accesible para las operaciones necesarias. Es esencial adherirse a las mejores prácticas, como usar contraseñas fuertes y únicas y mantener permisos adecuados, para proteger tu sistema contra posibles amenazas de seguridad, y las herramientas ofrecidas por EVERTRUST presentan una alternativa robusta a Microsoft ADCS, ofreciendo una utilidad significativa en ambos escenarios.
Ya sea que esté buscando mejorar la seguridad, optimizar procesos o modernizar la gestión del ciclo de vida de sus certificados, EVERTRUST ofrece soluciones potentes para satisfacer sus necesidades - no solo puede optimizar la eficiencia operativa, sino también reforzar su infraestructura digital contra amenazas emergentes, garantizando un enfoque resiliente y ágil para la gestión de certificados en el panorama de rápida evolución de hoy's.