Wie man selbstsignierte Zertifikate in Windows erstellt und verwaltet – Real Insights
Wer sich schon mal mit Windows PKI beschäftigt hat, kennt MakeCert.exedas altbewährte Tool zum Generieren selbstsignierter Zertifikate. Aber mal ehrlich: Heutzutage New-SelfSignedCertificateist der PowerShell-Befehl die bessere Wahl – flexibler, keine zusätzlichen Downloads nötig und er unterstützt moderne Funktionen wie SANs und SHA-256. Trotzdem ist er nicht besonders intuitiv, vor allem für diejenigen, die nicht an die Ausführung von Befehlen oder die Arbeit mit Zertifikatsspeichern gewöhnt sind. Daher hier eine praktische Anleitung zum Erstellen, Exportieren und für alle anderen benötigten Zwecke eines selbstsignierten Zertifikats. Diese Anleitung beschreibt die Erstellung eines Zertifikats für Testzwecke, interne Websites oder einfach nur zum Spaß, ohne dabei viel Geld für eine Zertifizierungsstelle auszugeben. Außerdem lernen Sie, wie Sie das Zertifikat exportieren, es an IIS binden und grundlegende Verwaltungsaufgaben durchführen. Wichtig: Bei manchen Konfigurationen kann die korrekte Berechtigungseinstellung etwas knifflig sein oder es werden erhöhte PowerShell-Rechte benötigt. Legen wir also gleich mit den praktischen Schritten los. Rechnen Sie mit einigen Befehlszeilen, Menüpfaden und Dingen, die beim ersten Mal zunächst verwirrend sind, sich aber nach ein paar Versuchen erschließen.
Erstellen eines selbstsignierten Zertifikats mit PowerShell
Verwenden Sie das richtige Cmdlet und warum das wichtig ist
Die Verwendung von PKI New-SelfSignedCertificateist deutlich besser als bei älteren Tools MakeCert.exe– erstens, weil es integriert ist, und zweitens, weil es SANs, SHA-256 und bessere Schlüsseloptionen unterstützt. Es eignet sich perfekt zum Erstellen eines Test-SSL für IIS, für API-Tests oder interne Dienste. Um alle Optionen anzuzeigen, führen Sie folgenden Befehl aus: `powershell Get-Command -Module PKI`.Dadurch werden alle zugehörigen Befehle aufgelistet – hauptsächlich New-SelfSignedCertificateunter dem PKI- Modul. Wichtig: Dies ist primär für Entwicklungs- und Testzwecke gedacht, nicht für den Produktiveinsatz. Für die Bereitstellung ist ein von einer Zertifizierungsstelle ausgestelltes Zertifikat weiterhin die beste Wahl.
So generieren Sie ein einfaches SSL-Zertifikat für Ihre Testdomain
Angenommen, Sie benötigen ein Zertifikat für test.contoso.com. Verwenden Sie dazu einfach folgenden Befehl: `powershell New-SelfSignedCertificate -DnsName test.contoso.com -CertStoreLocation cert:\LocalMachine\My`.Dadurch wird ein Zertifikat erstellt, im Zertifikatspeicher „Mein“ (Persönlich) Ihres Computers gespeichert und der Fingerabdruck sowie weitere Informationen ausgegeben. Sie können das Zertifikat anschließend in `certlm.msc` im Abschnitt „Persönlich“ überprüfen – Windows blendet Informationen nämlich gerne aus, wenn man nicht danach sucht. Wichtig: Wenn Sie PowerShell nicht als Administrator ausführen, erhalten Sie wahrscheinlich die Fehlermeldung „Zugriff verweigert“.Klicken Sie in diesem Fall mit der rechten Maustaste auf PowerShell und wählen Sie „Als Administrator ausführen“.Auf manchen Systemen können die Berechtigungen selbst dann noch problematisch sein. Wenn Sie einen anderen Kryptografieanbieter angeben, stellen Sie außerdem sicher, dass dieser installiert ist, da sonst Anbieterfehler auftreten können.
Fügen Sie SANs oder mehrere Namen hinzu – nicht nur den CN.
Ein einfaches Zertifikat erstellen? Kein Problem. Was aber, wenn Ihr Zertifikat mehrere DNS-Namen oder sogar IP-Adressen benötigt? Der -DnsNameParameter akzeptiert ein Array: `powershell New-SelfSignedCertificate -DnsName adfs1.contoso.com, web_gw.contoso.com, enterprise_reg.contoso.com -CertStoreLocation cert:\LocalMachine\My`.Und für eine IP-Adresse? Verwenden Sie ` -TextExtension @(„2.5.29.17={text}IPAddress=10.1.2.3, DNS=TESTServer1, DNS=TESTServer1.local“)` -TextExtension, da -DnsNamedieser Parameter nur DNS-Namen akzeptiert. Ja, es ist etwas ungewöhnlich, aber es funktioniert.
Exportieren Ihres selbstsignierten Zertifikats zur Installation oder Weitergabe
Wenn Sie den privaten Schlüssel als PFX-Datei exportieren möchten, um ihn an anderer Stelle zu importieren, benötigen Sie den Fingerabdruck. Prüfen Sie dies mit folgendem Befehl: `powershell Get-ChildItem -Path „Cert:\LocalMachine\My“ | Where-Object { $_. Thumbprint -eq „YOUR_THUMBPRINT“ }`.Ersetzen Sie `YOUR_THUMBPRINT` durch Ihren Fingerabdruck. Zum Exportieren: `powershell $CertPassword = ConvertTo-SecureString -String „YourPassword“ -Force –AsPlainText Export-PfxCertificate -Cert cert:\LocalMachine\My\YOUR_THUMBPRINT -FilePath C:\temp\mycert.pfx -Password $CertPassword`.Um nur den öffentlichen Schlüssel (ohne privaten Schlüssel) zu exportieren, verwenden Sie: `powershell Export-Certificate -Cert cert:\LocalMachine\My\YOUR_THUMBPRINT -FilePath C:\temp\mycert.cer`.Dadurch wird die Zertifikatsdatei gespeichert. Von dort aus geht es wie üblich weiter: – Doppelklicken Sie auf die Datei `.cer`, um die Installation über die grafische Benutzeroberfläche durchzuführen.- Oder verwenden Sie den Zertifikatimport-Assistenten, um das Zertifikat bei Bedarf zu den vertrauenswürdigen Stammzertifizierungsstellen hinzuzufügen. Hinweis: Sie benötigen Administratorrechte, um private Schlüssel zu exportieren oder in lokalen Speichermedien abzulegen.
Erstellung einer Stammzertifizierungsstelle und einer Ausgabekette (optional, aber nützlich)
Sie können ein Stammzertifikat (Root CA) erstellen und daraus untergeordnete Zertifikate generieren – nützlich für interne Tests oder die Erstellung von Zertifizierungsstellenketten. Beispiel: PowerShell: `$rootCert = New-SelfSignedCertificate -Subject „CN=TestRootCA, O=MyOrg“ -KeyExportPolicy Exportable -KeyUsage CertSign, CRLSign, DigitalSignature -KeyLength 2048 -HashAlgorithm „SHA256“ -CertStoreLocation cert:\LocalMachine\My` `$intermediateCert = New-SelfSignedCertificate -Subject „CN=TestSubCA, O=MyOrg“ -Signer $rootCert -CertStoreLocation cert:\LocalMachine\My` ### Wenn Probleme auftreten: – Ausführung ohne Administratorrechte? Es ist mit Zugriffsverweigerungsfehlern zu rechnen.- Probleme mit dem Kryptoanbieter? Stellen Sie sicher, dass der angegebene Anbieter existiert.- Lange Generierungszeiten? Manchmal liegt es einfach an einer langsamen virtuellen Maschine oder einem überlasteten System.
So konfigurieren Sie IIS zur Verwendung Ihres selbstsignierten Zertifikats
Sobald Sie das Zertifikat haben, öffnen Sie den Internetinformationsdienste-Manager (IIS) (`inetmgr.exe`).Fügen Sie unter den Bindungen Ihrer Website eine HTTPS-Bindung hinzu oder bearbeiten Sie eine bestehende und wählen Sie Ihr neues Zertifikat aus. Alternativ können Sie die Bindung mit PowerShell herstellen: `powershell New-IISSiteBinding -Name „Standardwebsite“ -BindingInformation „*:443:“ -CertificateThumbPrint „Ihr_Fingerabdruck“ -CertStoreLocation „cert:\LocalMachine\My“ -Protocol https` *(Hinweis: Dieser Befehl ist abhängig von Ihrer IIS-Konfiguration. In der Regel verwenden Benutzer jedoch die grafische Benutzeroberfläche oder Skripte aus den IIS-Verwaltungstools.)* Wenn Sie die Bindung direkt über den Fingerabdruck vornehmen möchten: `powershell # Ersetzen Sie den Fingerabdruck durch den Fingerabdruck Ihres Zertifikats $thumbprint = „IHR_Fingerabdruck“ Import-Module IISAdministration New-IISSiteBinding -Name „Standardwebsite“ -BindingInformation „*:443:“ -CertificateThumbPrint $thumbprint -CertStoreLocation „cert:\LocalMachine\My“` — Nur ein kurzer Hinweis: All dies eignet sich hervorragend zum Testen, aber Browser werden sich beschweren, weil Selbstsignierte Zertifikate werden standardmäßig nicht als vertrauenswürdig eingestuft. Um einen reibungslosen Ablauf zu gewährleisten, müssen Sie Ihre Stammzertifizierungsstelle manuell installieren oder das Zertifikat auf Ihrem lokalen Rechner als vertrauenswürdig einstufen. Hoffentlich hilft Ihnen dieser Artikel dabei, selbstsignierte Zertifikate unkompliziert zu erstellen, zu exportieren und zu verwenden. Dies ist zwar nicht der spannendste Teil der Windows-Administration, aber unerlässlich für die Entwicklung interner Tools oder sicheres Testen.
Zusammenfassung
- Nutzen Sie es
New-SelfSignedCertificatefür die moderne und flexible Erstellung von Zertifikaten. - SANs mit Arrays oder
-TextExtension. - Exportieren Sie den Export in das PFX- oder CER-Format für die Bereitstellung und die Einrichtung von Vertrauensstellungen.
- Binden Sie Ihr Zertifikat in IIS über die grafische Benutzeroberfläche oder PowerShell ein.
Zusammenfassung
Die Einrichtung eines selbstsignierten Zertifikats ist etwas knifflig, aber sobald man den Dreh raus hat, ist es recht einfach. Denken Sie nur daran, PowerShell gelegentlich als Administrator auszuführen und Ihre Fingerabdrücke zu notieren. Es ist dennoch eine solide Methode, HTTPS zu testen oder internen Datenverkehr zu verschlüsseln, ohne in den Bereich einer echten Zertifizierungsstelle zu geraten. Ich hoffe, dies hilft jemandem, einige der häufigsten Fehler zu vermeiden – bei mir hat es in mehreren Umgebungen funktioniert, also hoffe ich, dass es auch Ihnen hilft.