Selbstsigniertes SSL/TLS Zertifikat mit Powershell

Auch in Zeiten von Let’s Encrypt kommt es immer mal wieder vor, dass man selbstsignierte Zertifikate benötigt. Sei es weil eine Anwendung die automatische Aktualisierung mit Let’s Encrypt nicht unterstützt oder man für einen internen Dienst ein einfaches Zertifikat benötigt, aber keines offizielles anfordern möchte.

In solchen Fällen greift man oft zu OpenSSL, was unter Windows aber nachinstalliert werden muss.
Um es schnell und einfach zu realisieren, kann man auch zu Windows Boardmitteln greifen, genauer zur Powershell.

Wie das funktioniert zeigt das folgende Codesnippet. Da wir Daten in den Computerzertifikatsstore > Eigene Zertifikate schreiben, muss die Powershell als Administrator gestartet werden.

Die Funktion New-SelfSignedCertificate umfasst viele Parameter, daher lohnt sich ein Blick auf die verlinkte Microsoft-Hilfeseite.

# Variablen konfigurieren
$domain = "host.domain.tld" # Domain für das Zertifikat
$monthsValid = 12 # Gültigkeitsdauer des Zertifikats in Monaten

# Optionale Variablen, für Export als PFX
$exportFileName = "cert.pfx" # (Pfad und) Dateiname für das exportierte Zertifikat
$password = "secret" # Passwort für das exportierte Zertifikat

# Zertifikat erstellen
# Speicherort: Computerzertifikate > Eigene Zertifikate (LocalMachine\My)
# Die Gültigkeit wird mit dem Parameter "-NotAfter" definiert
$cert = New-SelfSignedCertificate -certstorelocation "cert:\LocalMachine\My" -dnsname $domain -KeyAlgorithm RSA -KeyLength 2048 -NotAfter (Get-Date).AddMonths($monthsValid)

# Das Zertifikat wurde im Computerzertifikatsstore erstellt
# Die weiteren Schritte sind optional und müssen nur durchgeführt werden, wenn man eine Zertifikatsdatei benötigt

# Passwort erstellen
$pwd = ConvertTo-SecureString -String $password -Force -AsPlainText

# Export als verschlüsselte PFX Datei
$path = "cert:\LocalMachine\My\" + $cert.thumbprint 
Export-PfxCertificate -cert $path -FilePath $exportFileName -Password $pwd
Code-Sprache: PowerShell (powershell)

Quellenangaben

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert