Weisheiten - der Netz-Weise Blog

Hier finden Sie Tipps und Tricks für vor, während und nach der Schulung.
1 Minuten Lesezeit (289 Worte)

Zertifikate mit Powershell Base64-kodiert aus dem Zertifikatsspeicher exportieren

Mit Powershell auf den Zertifikatsspeicher zurückzugreifen, ist sehr simpel, denn Powershell stellt für den Zugriff auf Zertifikate einen Powershell-Provider bereit. Durch den Provider ist es möglich, Zertifikate wie Dateien zu behandeln. Der Provider legt hierfür ein "Laufwerk" mit Namen Cert: an. Möchten Sie z.B. die Zertifikate des aktuellen Benutzers sehen, geben Sie ein:

PS C:\Users\Holger> Get-ChildItem -Path Cert:\CurrentUser\My\

PSParentPath: Microsoft.PowerShell.Security\Certificate::CurrentUser\My

Thumbprint                               Subject
----------                               -------
A83FA591D2D909D7465768ED4F7DE4019026F74D CN=Holger
7154EBF108BEB11587B1136B06EC5C24E3E6CAEA CN=NWCertRoot
6C0CEA5EC15CA5E6350CB9E7D02D90C9AA1DEBE3 CN=NwClientCert

Zurückgeliefert wird der eindeutige Thumbprint des Zertifikats, sowie dessen Name. Um ein Zertifikat ins Dateisystem zu exportieren, verwenden Sie das Cmdlet Export-Certificate:

Get-ChildItem -Path Cert:\CurrentUser\My\
  Where-Object { $_.subject -eq "cn=NWCertRoot" } |

  Export-Certificate -Type CERT -FilePath $home\NWCertRoot.cer 

Das klappt ganz wunderbar, allerdings unterstützt Export-Certificate nur den Export des Binärformats. Müssen Sie das Zertifikat Base64-Codiert ausgeben - also Text-kodiert - versagt Export-Certificate. Es ist allerdings einfach, das Zertifikat in seine Base64-kodierte Form zu bringen. Verwenden Sie hierfür die .Net-Klasse [Convert] und kodieren Sie die Eigenschaft .Raw des Zertifikatsobjekts:

$cert = Get-ChildItem -Path Cert:\CurrentUser\My\ | Where-Object { $_.subject -eq "cn=NWCertRoot" }

$Base64Cert = [convert]::tobase64string(($Cert).RawData,'InsertLineBreaks'

Nun können Sie die Base64-Form direkt aus den Speicher z.B. auf eine Website hochladen - z.B., wenn Sie in Azure ein Point-to-Site VPN erstellen wollen - oder Sie können das Zertifikat in einer Datei speichern. Für die Speicherung in eine Datei müssen allerdings noch die beiden Codes "-----BEGIN CERTIFICATE-----" vor und "-----END CERTIFICATE-----" nach dem Code eingefügt werden:

@"

-----BEGIN CERTIFICATE-----

$Base64Cert

-----END CERTIFICATE-----

"@ | out-file c:\temp\Base64Cert.Cer -Encoding ascii

 

Links:

https://social.technet.microsoft.com/Forums/en-US/37a213b9-f185-482e-b610-295f2056506e/export-certificate-using-base-64-cer-format-with-powershell-?forum=winserversecurity

Zertifikate mit Powershell inklusive des privaten ...
Office 365 (nicht nur) auf einem RDP-Server instal...

Ähnliche Beiträge

 

Kommentare

Derzeit gibt es keine Kommentare. Schreibe den ersten Kommentar!
Bereits registriert? Hier einloggen
Gäste
Dienstag, 11. August 2020
Für die Registrierung bitte Benutzername, Passwort und nötige Felder eingeben.

By accepting you will be accessing a service provided by a third-party external to https://www.netz-weise-it.training/

Nach oben