En el momento de importar un certificado digital, ya sea para el usuario actual (certmgmt.msc) como para el equipo (certlm.msc), tenemos la opción de establecer dicho certificado como exportable. Esto nos permite exportar el certificado (clave pública) con la clave privada en un mismo fichero en formato pfx.
Más información sobre algunos tipos de formatos de certificados.

Figura 1: Checkbox “Marcar clave como exportable” al importar un certificado digital.
Si no marcamos el check “Marcar esta clave como exportable” cuando se importa un certificado. En el momento de exportarlo del almacén de certificados del usuario actual: Botón derecho > todas las tareas > exportar…

Figura 2: Exportar certificado del administrador de certificados.

Figura 3: Intento de exportación de clave privada, opción deshabilitada, certificado no exportable.
Usando Jailbreak Link to heading
Jailbreak nos permitirá abrir una consola de Microsoft (MSC) del almacén de certificados de Windows y poder realizar la exportación de la clave privada estableciendo una nueva password.
Una vez descargado Jailbreak abrimos una consola cmd con el mismo usuario donde tenemos instalado el certificado y nos situamos en la raíz, ejecutamos el proceso por lotes “jbcert32.bat”. Este nos lanzará una ventana del almacén de certificados de usuario (certmgr.msc).

Figura 4: Ejecución de jailbreak para exportar certificados no exportables.
Si quisiéramos ejecutar el almacén local de certificados a nivel de máquina certlm.msc, no el almacén de usuarios como el caso anterior. Ejecutaríamos lo siguiente.
64 bits
jailbreak64.exe %WINDIR%\system32\mmc.exe %WINDIR%\system32\certlm.msc -64
32 bits
jailbreak32.exe %WINDIR%\system32\mmc.exe %WINDIR%\system32\certlm.msc -32
Ahora vemos cómo al intentar exportar el certificado nos permite exportar la clave privada.

Figura 5: Opción habilitada para exportar clave privada.
Elegimos un formato .pfx (este almacenará tanto la clave pública como la clave privada), podemos también marcar la opción de “Exportar todas las propiedades extendidas”.

Figura 6: Opciones disponibles para exportar el certificado en formato .pfx.
Podemos establecer una nueva contraseña para la clave privada, este sería el modo de restablecer la clave privada. Al finalizar el asistente tendremos exportado un certificado .pfx que contiene ambas claves y volver a importarlo en otro usuario o equipo.

Figura 7: Establecer una nueva contraseña para la clave privada.
Usando Mimikatz Link to heading
Otra opción para poder exportar certificados no exportables de forma sencilla es con la herramienta Mimikatz (ya comentada en el blog).
Una vez descargado Mimikatz abrimos una consola cmd y nos ubicamos en el raíz ejecutando “mimikatz.exe” (dependiendo de la arquitectura del sistema operativo que tengamos win32 o x64).
crypto::capi
crypto::certificates /export
Esto buscará los certificados del almacén del usuario actual y los exportará en codificación .der y formato .pfx. La contraseña por defecto que establece Mimikatz es mimikatz (sin comillas).
Podremos cambiar la password importando el certificado y volviendo a exportarlo con la clave privada estableciendo una nueva password (como se muestra en la figura 8).

Figura 8: Mimikatz - Exportar certificados no exportables.
Saludos!