Exportieren Sie das installierte Zertifikat und den privaten Schlüssel remote über eine Befehlszeile in Windows, indem Sie ein anderes Tool als das Tool certmgr.MSC verwenden.

Exportieren Sie das installierte Zertifikat und den privaten Schlüssel remote über eine Befehlszeile in Windows, indem Sie ein anderes Tool als das Tool certmgr.MSC verwenden.

Ich muss in der Lage sein, ein installiertes Computerzertifikat mit der vollständigen Zertifikatskette und privaten Schlüsseln remote auf einem Windows-Server zu exportieren. Das Zertifikat wird für IIS verwendet und ich möchte es für eine Apache-Instanz verwenden, die auf demselben Server ausgeführt wird.

Ich weiß, wie man dies manuell mit dem MMC-Snap-In-Tool certmgr.MSC macht, aber wie kann man dies über eine Befehlszeile oder von einem Remotecomputer in derselben Domäne aus tun?

Ich weiß auch, wie man nur das Zertifikat mit anzeigen kann openssl s-client. Kann das verwendet werden, um sowohl das Zertifikat als auch den privaten Schlüssel für den Import in eine Java-Keystore-Datei zu speichern?

Certmgr über RDP ist für meine Anforderungen zu langsam. Ich brauche eine Skriptlösung.

Meine Umgebung ist allesWindows Server 2008R2. PowerShell-Remoteverwaltung ist nicht aktiviert, aber ich kann sie aktivieren.

Ich habe bestätigt, dass ich das nicht verwenden kann PowerShell Export-PfxCertificate, da meine Server nicht neu genug sind ...

Wenn ich also PowerShell verwenden kann, um den Fingerabdruck des gewünschten Zertifikats abzurufen, kann ich ihn anschließend dem Befehl „certutil -exportpfx“ zuführen. Ich habe bestätigt, dass das funktioniert.

Wie mache ichdirder Zertifikatsspeicher wie „dir cert:\localmachine\my | Where-Object { $_.hasPrivateKey } | “ UND das dann mit dem Fingerabdruck in den Certutil-Export einspeisen?

ODER könnte ich zuerst das Verzeichnis erstellen und ihm sagen, dass nur der Fingerabdruck und nicht das Ganze ausgedruckt werden soll? Das dann in einer Datei speichern, die Datei lesen und den Befehl certutil ausführen?

Antwort1

Siehe Stack Overflow-FrageExportieren des Zertifikats aus IIS mithilfe von PowerShell.

Wenn die Antwort für Sie funktioniert, können Sie PowerShell-Code auf einem Remote-Server ausführen, indem Sie PSRemoting(PSSession eingebenoderAufruf-Befehl) oderpsexec.

Weiß jemand, wie man den Zertifikatsspeicher so verwaltet, „dir cert:\localmachine\my | Where-Object { $_.hasPrivateKey } | “ UND das dann mit dem Fingerabdruck in den Certutil-Export einspeist?

Versuchen Sie Folgendes, bei mir funktioniert es:

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

Vorsicht, dasmanchmal können Sie nicht Subjectals Dateinamen verwenden, aufgrund ungültiger fremdsprachiger Zeichen im Unicode.

Antwort2

Tun Sie dies in PowerShell, um das Zertifikat remote aus einer langen Liste von Windows-Servern zu exportieren. $servers ist eine Liste von Servern.

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
}

Verwenden Sie Java keytool.exe, um jede PFX-Datei in eine JKS-Keystore-Datei umzuwandeln. Keytool ist Teil jeder Java-Installation. Sie können dies auf Ihrem lokalen Computer oder auf einem Remote-Server tun, wenn dort bereits Java installiert ist.

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

Sie können dies auch mit Powershell ausführen ($server ist der Name des Servers) ($pwd ist eine Variable, die das Kennwort enthält, das wir zum Verschlüsseln der Datei verwenden):

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

}

Antwort3

  1. Öffnen Sie MMC als Administrator
  2. SpeisekarteDatei-> Snap-In hinzufügen/entfernen ( Ctrl+ M)
  3. Wähle ausZertifikateSnap-In im linken Bereich und drücken SieHinzufügen
  4. WählenComputerkonto(dritte Option)
  5. WählenEin anderer Computerund geben Sie den Namen des Remote-Systems ein, dessen Zertifikate Sie verwalten möchten
  6. Schließen Sie den Dialog ab und klicken Sie auf „OK“.

Die Namen können leicht abweichen. Mein Betriebssystem ist deutsch, daher habe ich alles grob übersetzt.

verwandte Informationen