Wie verwendet man https / SSL auf localhost?

88

Ich möchte wissen, wie SSL in meiner Webanwendung auf dem lokalen Host eingerichtet wird.

Ich habe keinen Hintergrund, würde die Anleitung schätzen. Ich habe die Implementierung meiner Webanwendung bereits abgeschlossen und benötige sie, um https auf dem lokalen Host oder während ich sie auf einem Server hoste, zu verwenden.

Irgendwelche Ideen?

Grüße.

HShbib
quelle
Überprüfen Sie ähnlichen Beitrag: stackoverflow.com/questions/36037510/…
Pusker György

Antworten:

23

Wenn Sie IIS Express (mit Visual Studio) haben:

Um das SSL in IIS Express zu aktivieren, müssen Sie im Fenster mit den Projekteigenschaften lediglich "SSL Enabled = true" festlegen.

Siehe die Schritte und Bilder in diesem Code-Projekt .

IIS Express generiert ein Zertifikat für Sie (Sie werden dazu aufgefordert usw.). Beachten Sie, dass die Site je nach Konfiguration möglicherweise immer noch automatisch mit der URL und nicht mit der SSL-URL beginnt. Sie können die SSL-URL sehen - notieren Sie sich die Portnummer und ersetzen Sie sie in der Adressleiste Ihres Browsers. Sie sollten in der Lage sein, einzusteigen und zu testen.

Von dort aus können Sie mit der rechten Maustaste auf Ihr Projekt klicken, auf Eigenschaftenseiten klicken, dann Optionen starten und die Start-URL zuweisen - setzen Sie das neue https mit dem neuen Port (normalerweise 44301 - beachten Sie die Ähnlichkeit mit Port 443) und Ihr Projekt wird von da an korrekt gestartet auf.

Geben Sie hier die Bildbeschreibung ein

JackArbiter
quelle
Kann ich den Port wählen? dh verwenden Sie den Standard-https-Port; Port 443?
Die rote Erbse
1
@TheRedPea In jedem Fall, in dem ich auf etwas gestoßen bin, müssen Sie Port 44301 verwenden, um lokal zu testen, anstatt Port 443 zu verwenden. Dies hat keine Auswirkungen auf die Ports, die Sie für Ihren Live-Server verwenden (den Sie in IIS binden), der fast immer 443 ist Angenommen, Sie verwenden https.
JackArbiter
21

Es ist einfach, ein selbstsigniertes Zertifikat zu erstellen, es zu importieren und an Ihre Website zu binden.

1.) Erstellen Sie ein selbstsigniertes Zertifikat:

Führen Sie die folgenden 4 Befehle nacheinander an einer Eingabeaufforderung mit erhöhten Rechten aus:

cd C:\Program Files (x86)\Windows Kits\8.1\bin\x64

makecert -r -n "CN=localhost" -b 01/01/2000 -e 01/01/2099 -eku 1.3.6.1.5.5.7.3.3 -sv localhost.pvk localhost.cer

cert2spc localhost.cer localhost.spc

pvk2pfx -pvk localhost.pvk -spc localhost.spc -pfx localhost.pfx

2.) Importieren Sie das Zertifikat in den Speicher der vertrauenswürdigen Stammzertifizierungsstellen:

start -> run -> mmc.exe -> Plugins für Zertifikate -> "Trusted Root Certification Authorities" -> Zertifikate

Klicken Sie mit der rechten Maustaste auf Zertifikate -> Alle Aufgaben -> Importieren. Suchen Sie Ihr "localhost" -Zertifikat unter C: \ Programme (x86) \ Windows Kits \ 8.1 \ bin \ x64 \

3.) Zertifikat an Website binden:

Start -> (IIS) Manager -> Klicken Sie auf Ihren Server -> Klicken Sie auf Sites -> Klicken Sie auf Ihre Site der obersten Ebene -> Bindungen

Fügen Sie eine Bindung für https hinzu oder bearbeiten Sie sie, und wählen Sie das SSL-Zertifikat "localhost" aus.

4.) Zertifikat nach Chrome importieren:

Chrome-Einstellungen -> Zertifikate verwalten -> PFX-Zertifikat aus Ordner C: \ certificates \ importieren

Testen Sie das Zertifikat, indem Sie Chrome öffnen und zu https: // localhost / navigieren.

Jason Williams
quelle
Wie erhalten Sie die Dateien, die Sie gerade im Befehl verwendet haben makecert? localhost.pvk localhost.cer cert2spc localhost.cer localhost.spc. Wie kann ich die Datei private.key dazu bringen, eine allinone.pem-Datei für andere Webserver als IIS zu erstellen?
Wenn Sie das Zertifikat nicht in Chrome importieren möchten, können Sie die Chrome-Sicherheitsfunktion deaktivieren, die den Zugriff auf selbstsignierte Zertifikate auf localhost stackoverflow.com/a/31900210/2733283 blockiert
Jason Williams
8

Diese Frage ist wirklich alt, aber ich bin auf diese Seite gestoßen, als ich nach dem einfachsten und schnellsten Weg gesucht habe, dies zu tun. Die Verwendung von Webpack ist viel einfacher:

Installieren Sie den Webpack-Dev-Server

npm i -g webpack-dev-server

Starten Sie den Webpack-Dev-Server mit https

webpack-dev-server --https
Brianyang
quelle
2
Dadurch werden die js-Dateien bereitgestellt, aus denen die Anwendung besteht, die Anwendung wird jedoch nicht ausgeführt.
user1944491
Kann dies zusammen mit einem vorhandenen Entwicklungsserver wie XAMPP verwendet werden?
Prometheus