Von Timilehin Omolana

Das lokale Ausführen von HTTPS ist für bestimmte Entwicklungstypen ein Muss.

Leser wie Sie helfen, MUO zu unterstützen. Wenn Sie über Links auf unserer Website einen Kauf tätigen, erhalten wir möglicherweise eine Affiliate-Provision. Weiterlesen.

Während der Entwicklung möchten Sie möglicherweise Ihren Webserver so einrichten, dass er sichere Verbindungen mit Browsern herstellt. Node.js macht dies mit seiner integrierten Funktion selbst in einer Nicht-Produktionsumgebung zu einem unkomplizierten Prozess https Modul.

In der Produktion richten Sie Ihre Anwendung möglicherweise hinter einem Reverse-Proxy wie NGINX ein, der normalerweise Zertifikate für Sie bereitstellt. Möglicherweise müssen Sie Ihre Anwendung jedoch noch mit testen https in Entwicklung.

Wie können Sie ein SSL-Zertifikat in einer Node.js-Anwendung verwenden?

So verwenden Sie ein SSL-Zertifikat zum Entwickeln eines sicheren Node.js-Servers

Sie können leicht Erstellen Sie ein selbstsigniertes SSL-Zertifikat in Linux

, und führen Sie die folgenden Schritte aus, um Ihre zu verwendende Node-Anwendung zu konfigurieren https.

  1. Erstellen Sie eine Server-Einstiegspunktdatei, z. B. index.js.
  2. Importieren Sie die https Und fs Module in der Datei wie folgt: konst https = erfordern('https');
    konst fs = erfordern('fs')
  3. Definieren Sie das Optionsobjekt für die https Server, den Sie gerade erstellen. Denken Sie daran, zu ersetzen my-server-key.pem Und mein-server-cert.pem mit den korrekten Pfaden Ihrer privaten Schlüssel- und Zertifikatsdateien. konst Optionen = {
    Schlüssel: fs.readFileSync("my-server-key.pem"),
    Zertifikat: fs.readFileSync("my-server-cert.pem")
    }
    Verwenden Sie ein echtes SSL-Zertifikat, das Sie kostenlos unter erhalten können letsencrypt.org, verwenden Sie die folgenden Optionen: konst Optionen = {
    Schlüssel: fs.readFileSync("/path/to/private.key"),
    Zertifikat: fs.readFileSync("/path/to/ssl_certificate.crt"),
    ca: [
    fs.readFileSync("/path/to/ca_root_file.crt"),
    fs.readFileSync("/path/to/ca_bundle_certificate.crt")
    ]
    }
  4. Initialisieren Sie nun Ihren Server mit den Optionen und stellen Sie ihn so ein, dass er auf Port 443 lauscht. https.createServer (Optionen, (req, res) => {
    res.writeHead(200);
    res.end("Hallo Welt");
    })
    .Hören(443);

Nun können Sie Ihren Server im Terminal mit starten Knoten index.js. Beim Testen der Verbindung durch Öffnen https://localhost oder https://localhost: 443/ In Ihrem Browser sollten Sie sehen 'Hallo Welt' angezeigt.

Ihr Browser kann Sie auch vor einer unsicheren Verbindung warnen, wenn Sie das selbstsignierte Zertifikat verwenden. Dies ist normal, da selbstsignierte Zertifikate von Webbrowsern im Allgemeinen als unsicher angesehen werden.

Möglicherweise erhalten Sie den Fehler „Fehler: Listen EACCES: Erlaubnis verweigert 0.0.0.0:443“ Wenn Sie versuchen, Ihren Server zu starten, liegt dies daran, dass Ihr Computer der Anwendung den Zugriff auf Port 443 verweigert, was bei den meisten Geräten das Standardverhalten ist. Um dies zu beheben, führen Sie die Knoten index.js Befehl als Root-Benutzer in Linux (sudo-Knoten index.js) oder öffnen Sie Ihr Terminal als Administrator in Windows.

Verwenden von SSL-Zertifikaten in Node.js-Anwendungen

Meistens möchten Sie SSL-Zertifikate nur während der Entwicklungsphase hinzufügen. Produktionsanforderungen erfordern normalerweise ohnehin die Installation von Sicherheitstools wie Firewalls und Reverse-Proxys.

Auf diese Weise ist die Verwendung eines SSL-Zertifikats für Ihre Anwendung nicht mehr erforderlich. Möglicherweise möchten Sie nur dann ein SSL-Zertifikat in der Produktion hinzufügen, wenn Ihre Anwendung mit externen Diensten kommuniziert.

Abonniere unseren Newsletter

Kommentare

AktieTwitternAktieAktieAktie
Urheberrechte ©
Email
Aktie
AktieTwitternAktieAktieAktie
Urheberrechte ©
Email

Link in die Zwischenablage kopiert

Verwandte Themen

  • Programmierung
  • Web Entwicklung
  • SSL
  • JavaScript

Über den Autor

Timilehin Omolana(12 veröffentlichte Artikel)

Timilehin ist ein Softwareingenieur und technischer Redakteur, der es liebt, die Welt der serverseitigen Technologien und verteilten Systeme zu erkunden.