Bei meinen Versuchen zu verstehen, wie TLS-Zertifikate unter Windows funktionieren, habe ich keine einfache und umfassende Anleitung gefunden, aber ich habe einige notwendige Schritte ausgeführt.
Zunächst konnte ich den OpenSSL-Befehl als OpenSSL Light Stable von slproweb.com/products/Win32OpenSSL.html herunterladen. Kurze Beschreibungen der Unterbefehle finden Sie unter https://www.openssl.org/docs/man1.1.0/apps/ . Ich habe den OpenSSL- Ordner bin zu System> Eigenschaften> Erweitert> Umgebungsvariablen> Systemvariablen> Pfad hinzugefügt , damit der Befehl "OpenSSL" in einem Admin-Eingabeaufforderungsfenster funktioniert.
Als Nächstes habe ich unter deliciousbrains.com/ssl-certificate-authority-for-local-https-development/ gelernt, wie eine Zertifizierungsstelle (Certificate Authority, CA) für die lokale Verwendung erstellt wird. Dies führte dazu, dass eine erstellte CRT-Datei am Speicherort des Computers "Vertrauenswürdige Stammzertifizierungsstellen" gespeichert wurde, die von lokalen Browsern beim Zugriff auf HTTPS-Webseiten verwendet wird. Dieses neue CA-Zertifikat finden Sie in der Computerverwaltungskonsole> Zertifikate (die möglicherweise als neues MMC-Snap-In hinzugefügt werden müssen) oder unter Zertifikate anzeigen in den Optionen in einem beliebigen Browser oder mithilfe des sehr nützlichen Windows-Befehls certutil .
Die spezifischen Befehle, die in einer Admin-Eingabeaufforderung (% windir% \ system32 \ cmd.exe) zum Erstellen einer lokalen Zertifizierungsstelle verwendet werden, lauten:
- Wählen Sie eine geheime Passphrase aus und geben Sie sie an, wenn Sie dazu aufgefordert werden.
- Generiere privaten Schlüssel: openssl genrsa -des3 -out CA_NAME.key 2048
- Generieren Sie ein PEM-Zertifikat mit dem privaten Schlüssel: openssl req -x509 -new -nodes -key CA_NAME.key -sha256 -days 1825 -out CA_NAME.pem
- Erstellen Sie das Zertifikat der Stammzertifizierungsstelle: openssl x509 -outform der -in CA_NAME.pem -out CA_NAME.crt
- Installieren Sie das CA-Stammzertifikat auf dem lokalen Computer: Klicken Sie mit der rechten Maustaste auf "CA_NAME.crt" und wählen Sie "Assistent zum Installieren des Zertifikatimports"> "Lokaler Computer"> "Durchsuchen ..."> "Vertrauenswürdige Stammzertifizierungsstellen"
Hinweis: Mir ist nicht klar, welche dieser Passphrasen und generierten Dateien jemals wieder benötigt werden und zu welchem Zweck. Das gespeicherte CA-Zertifikat wird eindeutig als Stamm für weitere spezifische Zertifikate auf dem aktuellen Computer verwendet.
Als Nächstes stelle ich die Frage, wie Sie ein Serverautorisierungszertifikat für eine oder mehrere Websites in der localhost-Domäne (Beispiele: localhost / MY_WEBSITE, localhost / FOLDER / FILE.html) basierend auf dem neu installierten vertrauenswürdigen CA-Zertifikat erstellen. Dies würde die fehlerfreie Verwendung von Browser-URLs wie https: // localhost / MY_WEBSITE ermöglichen , vorausgesetzt, der lokale Server wartet auf solche sicheren Webanforderungen .
Ich habe mehrere Algorithmen gefunden, aber sie scheinen alle veraltet oder unvollständig zu sein. Es ist klar, dass ein Teil dieses Algorithmus die Erstellung einer "SAN" -Datei sein muss, die die Liste der zu autorisierenden Websites enthält, und dass ein anderer Teil eine Zertifikatsignierungsanforderung (Certificate Signing Request, CSR) sein muss.
Kann jemand bitte einen solchen Algorithmus bereitstellen, eine Liste von Schritten wie die obige, um ein localhost-Website-Zertifikat auf der Grundlage eines vorhandenen lokalen CA-Zertifikats zu erstellen und zu installieren, das wie oben erstellt wurde? Bitte testen Sie Ihre Vorschläge, bevor Sie antworten.
quelle
Antworten:
OpenSSL benötigt kein Admin-Terminal.
Dies erfolgt über SAN-Profile.
Um die Dinge vernünftig zu halten, verwende ich V3-Profile, die in meiner verlinkten openssl.cnf oben enthalten sind
Erforderliche Verzeichnisse erstellen:
Erforderliche Dateien erstellen:
CA erstellen
CA Key Passphrases: Mindestens 20 Zeichen, bestehend aus 2: Großbuchstaben, Kleinbuchstaben, Zahlen und Symbolen
Server Cert CSR generieren:
Zertifikat mit CA erstellen und signieren:
CA mit Cert verknüpfen:
Export nach PKCS12:
zusätzliche Information
quelle