Exporte el certificado instalado y la clave privada desde una línea de comando de forma remota en Windows usando algo además de la herramienta certmgr.MSC

Exporte el certificado instalado y la clave privada desde una línea de comando de forma remota en Windows usando algo además de la herramienta certmgr.MSC

Necesito poder exportar de forma remota un certificado de computadora instalado con la cadena de certificados completa y claves privadas en un servidor de Windows. El certificado se usa para IIS y quiero usarlo para una instancia de Apache que se ejecuta en el mismo servidor.

Sé cómo hacer esto manualmente con la herramienta de complemento mmc certmgr.MSC, pero ¿cómo se puede hacer esto desde una línea de comando o desde una máquina remota en el mismo dominio?

También sé cómo ver solo el certificado con openssl s-client. ¿Se puede usar eso para guardar tanto el certificado como la clave privada para importarlos a un archivo de almacén de claves Java?

Certmgr vía RDP es demasiado lento para lo que necesito. Necesito una solución de secuencias de comandos.

mi entorno lo es todoServidor Windows 2008R2. La comunicación remota de PowerShell no está activada, pero puedo activarla.

He confirmado que no puedo usar PowerShell Export-PfxCertificate, porque mis servidores no son lo suficientemente nuevos...

Entonces, si puedo usar PowerShell para obtener la huella digital del certificado que quiero, puedo enviarla al comando "certutil -exportpfx". He confirmado que funcionará.

Cómo puedodirectorioel almacén de certificados como, "dir cert:\localmachine\my | Where-Object { $_.hasPrivateKey } | " ¿Y luego alimentarlo a la exportación de certutil con la huella digital?

O, ¿podría hacer el directorio primero y decirle que solo imprima la huella digital y no todo? Luego, guárdelo en un archivo y lea el archivo para crear el comando certutil.

Respuesta1

Ver pregunta de desbordamiento de pilaExportar certificado desde IIS usando PowerShell.

Si la respuesta funciona para usted, puede ejecutar el código de PowerShell en un servidor remoto usando PSRemoting(Enter-PSSessionoComando de invocación) opsexec.

¿Alguien sabe cómo dirigir el almacén de certificados como, "dir cert:\localmachine\my | Where-Object { $_.hasPrivateKey } | " Y luego alimentarlo a la exportación de certutil con la huella digital?

Prueba esto, funciona para mí:

Get-ChildItem -Path 'Cert:\localmachine\My' |
    Where-Object { $_.hasPrivateKey } |
        Foreach-Object {
            &certutil.exe @('-exportpfx', '-p', 'secret',  $_.Thumbprint, "$($_.Subject).pfx")
         }

Cuidado, queA veces no podrás usarlo Subjectcomo nombre de archivo., debido a caracteres no válidos de idiomas extranjeros en Unicode.

Respuesta2

Haga esto en PowerShell para exportar el certificado desde una larga lista de servidores Windows de forma remota. $servers es una lista de servidores.

foreach ($server in $servers){
Invoke-command $server {
Get-ChildItem -Path 'Cert:\localmachine\My' |
Where-Object { $_.hasPrivateKey } |
Foreach-Object {&certutil.exe @('-exportpfx', '-f', '-p','your_password',$_.Thumbprint, "d:\$($_.Subject).pfx")}
    }
    Move-Item -Path \\$server\d$\*.pfx -Destination C:\$server.pfx -Force
}

Utilice Java keytool.exe para convertir cada archivo pfx en un archivo de almacén de claves JKS. Keytool es parte de cada instalación de Java. Puede hacer esto en su máquina local o en un servidor remoto si ya tiene Java instalado.

keytool.exe -importkeystore -srckeystore C:\server1.pfx -destkeystore C:\server1.jks -srcstoretype pkcs12 -deststoretype JKS -srcstorepass your_password -deststorepass your_password

También puedes ejecutar esto con Powershell ($server es el nombre del servidor) ($pwd es una variable que contiene la contraseña que usamos para cifrar el archivo):

foreach ($server in $servers){
& "C:\Program Files\Java\jre6\bin\keytool.exe" -importkeystore -srckeystore C:\$server.pfx -destkeystore C:\$server.jks -srcstoretype pkcs12 -deststoretype JKS -srcstorepass $pwd -deststorepass $pwd

}

Respuesta3

  1. Abrir mmc como administrador
  2. Menúarchivo-> Agregar o quitar complemento ( Ctrl+ M)
  3. Selecciona elCertificadoscomplemento en el panel izquierdo y presioneAgregar
  4. Seleccionarcuenta de computadora(tercera opción)
  5. Elegirotra computadorae ingrese el nombre del sistema remoto del que desea administrar los certificados de
  6. Complete el cuadro de diálogo y presione Aceptar.

Los nombres podrían ser ligeramente diferentes. Mi sistema operativo es alemán, así que traduje todo aproximadamente.

información relacionada