Entdecken Sie, wie Sie SSL/HTTPS für Ihren Localhost aktivieren können – Sicherheit und Datenschutz für lokale Entwicklungsumgebungen!
Generieren Sie ein CA-Zertifikat
SSL-Zertifikate werden normalerweise von Drittunternehmen signiert, die als Certificate Authority (CA) bekannt sind. Sie sind vertrauenswürdige Aussteller des Internets und prüfen sorgfältig, ob die Website das tut, was sie tun soll, bevor sie ein Zertifikat ausstellen.
Es gibt jedoch keine Zertifizierungsstelle, die ein Zertifikat für localhost ausstellt, einfach weil niemand localhost besitzt. In unserem Fall signieren wir das Zertifikat genau wie CA.
Der erste Schritt besteht darin, mit den folgenden Befehlen ein Root-CA-Zertifikat zu generieren:
Die obigen Befehle generieren einen privaten Schlüssel und fordern eine einfache Passphrase für den Schlüssel an. Der Benutzer gibt die Passphrase ein und gibt sie zur Bestätigung erneut ein.
Als nächstes generieren wir mit dem generierten Schlüssel ein Root-CA-Zertifikat, das in unserem Fall zehn Jahre gültig ist. Die Passphrase für den Schlüssel und die Zertifikatsinformationen werden angefordert. Der Benutzer kann die gewünschten Zertifikatsinformationen eingeben oder als Standard belassen.
Führen Sie den folgenden Befehl aus, um das zu erreichen, was wir oben besprochen haben:
Beachten Sie, dass das Zertifikat für localhost und auch 127.0.0.1 funktioniert. Sie können entscheiden, der Datei weitere Domänen oder IP-Adressen hinzuzufügen, aber stellen Sie sicher, dass Sie die Datei /etc/hosts so bearbeiten, dass diese Domänen auf den lokalen Computer (127.0.0.1) verweisen.
Als Nächstes generieren Sie einen Schlüssel und verwenden den Schlüssel, um mit dem folgenden Befehl eine CSR (Certificate Signing Request) zu generieren.
$ openssl genrsa -out localhost.key -des3 2048
Der Befehl generiert den privaten Schlüssel localhost, und die Passphrase wird für den Schlüssel angefordert, und der Benutzer wird aufgefordert, sie erneut zu bestätigen.
Als nächstes wird CSR mit dem Schlüssel generiert, und dann wird die oben erstellte Passphrase angefordert. Alle anderen angeforderten Details können als Standard belassen oder nach Bedarf eingegeben werden.
Notieren Sie sich das angeforderte Challenge-Passwort; man kann alles eingeben.
Verwenden Sie den folgenden Befehl, um die CSR zu generieren:
Mit dieser CSR können wir jetzt die CA auffordern, ein Zertifikat wie unten zu signieren. Beachten Sie, dass die Pfade für CA.key- und CA.pem-Dateien davon abhängen, von wo aus der Benutzer Befehle ausführt. In diesem Fall werden die folgenden Befehle von /cert/CA/localhost ausgeführt.
Dieser Befehl übernimmt die CSR (localhost.csr), das CA-Zertifikat (CA.pem und CA.key) und die Zertifikaterweiterungsdatei (localhost.ext). Diese Eingaben generieren eine localhost.crt-Zertifikatsdatei, die zehn Jahre gültig ist.
Der Server benötigt die Zertifikatsdatei localhost.crt und den entschlüsselten Schlüssel, da unser localhost.key in verschlüsselter Form vorliegt.
Wir müssen die localhost.key entschlüsseln und diese Datei auch wie folgt speichern:
Jetzt können wir den rails Server starten mit Bezug auf die Certifikate nachdem wir den cert Ordner in unserem public gespeichert haben.
$ rails s --early-hints -e development -b 'ssl://0.0.0.0:443?key=public/cert/CA.key&cert=public/cert/CA.pem'
Im Browser können wir die Seite unter https://localhost:443 aufrufen. Die entsprechende Warnmeldung können wir ignorieren und trotz Gefärdungswarnung weiter machen.
Damit nicht ständig der ganze Code eingegeben werden muss, kann man in der .zshrc einen Alias eingeben.
// .zsh
alias b4um="rails s --early-hints -e development -b 'ssl://0.0.0.0:443?key=public/cert/CA.key&cert=public/cert/CA.pem'"
b4um kann durch einen Alias nach wahl verändert werden. Mit diesem Alias kann ich jetzt wie folgt den Server starten:
Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten
zu können und die Zugriffe auf unsere Website zu analysieren.
Sie akzeptieren unsere Cookies, wenn Sie fortfahren diese Webseite zu nutzen.
Datenschutzerklärung.