Heim > Web-Frontend > js-Tutorial > So verwenden Sie SSL/TLS mit node.js

So verwenden Sie SSL/TLS mit node.js

Jennifer Aniston
Freigeben: 2025-02-10 13:06:35
Original
597 Leute haben es durchsucht

In diesem Artikel wird erläutert, wie Sie Ihren Express.js-Server mit HTTPS mithilfe von Let's Encrypt-Zertifikaten sichern und die Sicherheit mit HSTs und stärkeren Diffie-Hellman-Parametern weiter verbessern.

How to Use SSL/TLS with Node.js

In der heutigen digitalen Landschaft ist HTTPS nicht verhandelbar. Es wird von Benutzern erwartet, ein Google -Ranking -Faktor und Browser markieren aktiv es, wonach Websites es fehlen. Dieses Tutorial zeigt, dass es Ihrer Express.js -Anwendung ein Let's Encrypt -Zertifikat hinzufügt. Die kundenseitige Sicherheit ist jedoch ebenso wichtig. Wir werden die Durchsetzung verschlüsselter Verbindungen zu externen Servern untersuchen, auch wenn sie standardmäßig nicht aktiviert sind. (Hinweis: Für Nginx Reverse Proxy SSL -Setup mit einer Knoten -App siehe unseren Quick Tipp, „Nginx und SSL mit node.js“.)

Key Takeaways:

  • https ist im Jahr 2020 und darüber hinaus entscheidend für die Website der Website und bietet Authentifizierung, Privatsphäre, Vertraulichkeit und Datenintegrität. Es ist ein Google -Ranking -Faktor und die Benutzererwartung.
  • node.js standardmäßig zu http, aber das https Modul ermöglicht eine sichere Client -Kommunikation. Dies erfordert SSL -Zertifikate, die leicht erhältlich und frei von Let's Encrypt.
  • certbot vereinfacht uns die Erzeugung und Verwaltung von Zertifikaten und Überprüfung der Authentizität des Zertifikatsinhabers für sichere Kunden-Server-Verbindungen.
  • HTTP Strict Transport Security (HSTS), die über das Helmknotenmodul implementiert ist, zwingt alle Verkehr durch HTTPS, mildern Protokoll -Downgrade -Angriffe und Cookie -Hijacking.
  • SSL/TLS-Sicherheit wird durch Generieren eines längeren (2048-Bit) Diffie-Hellman-Schlüssels für einen erweiterten Serverschlüsseltausch gestärkt.

https überall:

Der HTTP/2 -Standard (RFC 7540, Mai 2015) schreibt die Verschlüsselung vor und macht HTTPS zum Standard. Dies steigert die Akzeptanz von HTTPS. Aus der Sicht eines Browsers beinhaltet das Erreichen der IP -Ebene die folgenden Schichten:

  1. Clientbrowser
  2. http
  3. ssl/tls
  4. tcp
  5. ip

https ist HTTP über SSL/TLS, wodurch HTTP -Regeln erbt, während: Authentifizierung über Schlüssel und Zertifikate; verschlüsselte, asymmetrische Kommunikation für Privatsphäre und Vertraulichkeit; und Datenintegrität durch manipulationssicheres Getriebe. Im Gegensatz zu früheren Wahrnehmungen ist der SSL/TLS-Overhead auch für groß angelegte Operationen wie Google minimal (unter 1% CPU-Last und 2% Netzwerkaufwand). Wie Ilya Grigorik treffend feststellte, ist der einzige Leistungsengpass nicht ausreichend HTTPS -Verwendung.

TLS 1.3 ist die neueste Version, die SSL 3.0 (wenn auch nicht interoperabel). Es verwendet drei verschlüsselte Kanäle: Zertifikatsketten, Kryptographie für öffentliche Schlüssel für den Schlüsselaustausch und symmetrische Kryptographie für die Datenübertragung. SHA2 oder stärkere Hashing -Algorithmen werden empfohlen (SHA1 ist veraltet). Wachstum von Daten verletzt die Bedarf an Kraftstoffnutzern nach verbesserter Online -Sicherheit. Die HTTPS überall durch die Browser -Erweiterung des EFF setzt die Verschlüsselung nach Möglichkeit durch, einschließlich Umschreiben von Anforderungen für Websites mit teilweise HTTPS -Unterstützung oder Blockierung von HTTP vollständig.

How to Use SSL/TLS with Node.js

Grundlegende Kommunikation:

Zertifikatvalidierung beinhaltet die Überprüfung des Signatures, des Ablaufdatums, der vertrauenswürdigen Stammkette und des Widerrufstatus. Vertrauenswürdige Zertifikatbehörden (CAS) geben Zertifikate aus; Kompromiss einer CA widerruft alle Zertifikate. Die HTTPS -Handshake -Sequenz: Client -Initialisierung, Zertifikat und Schlüsselaustauschnachricht aus dem Server, der Client -Taste -Austausch- und Cipher -Spezifikation, Serverbestätigung und Handshake -Schließung.

How to Use SSL/TLS with Node.js

Diese Sequenz ist unabhängig von HTTP; HTTPS verändert nur die Sockelhandhabung. HTTP -Anforderungen bleiben bestehen, aber der Socket verschlüsselt Inhalt (Header und Körper).

https Implementierung in Express.js:

node.js verwendet das https -Modul für sichere Kommunikation. Seine Verwendung spiegelt das http -Modul wider:

const https = require("https"),
  fs = require("fs");

const options = {
  key: fs.readFileSync("/srv/www/keys/my-site-key.pem"),
  cert: fs.readFileSync("/srv/www/keys/chain.pem")
};

const app = express();

app.use((req, res) => {
  res.writeHead(200);
  res.end("hello world\n");
});

app.listen(8000);

https.createServer(options, app).listen(8080);
Nach dem Login kopieren

Ersetzen Sie /srv/www/keys/my-site-key.pem und /srv/www/keys/chain.pem durch Ihre generierten Zertifikatpfade (unten erläutert).

Zertifikaterzeugung mit certbot:

certbot automatisiert let let lass Encrypt -Zertifikaterzeugung und -verwaltung. Installieren Sie Certbot (Anweisungen variieren je nach Betriebssystem; In diesem Beispiel wird Ubuntu verwendet):

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
Nach dem Login kopieren

Das Plugin certonly --webroot vereinfacht die Zertifikaterzeugung und -überprüfung. Lauf:

certbot certonly --webroot -w /var/www/example/ -d www.example.com -d example.com
Nach dem Login kopieren

Geben Sie Ihre E -Mail -Adresse an. Die Ausgabe zeigt Pfade zu Ihren privaten Schlüssel- und Zertifikatendateien. Verwenden Sie diese im obigen options Objekt.

Sicherheitsverbesserungen:

  • HTTP Strict Transport Security (HSTs): Verwenden Sie die Helm Middleware:
const helmet = require("helmet");
// ...
app.use(helmet());
Nach dem Login kopieren
  • stärkere Diffie-Hellman-Parameter: Erzeugen Sie einen 2048-Bit-DH-Taste mit OpenSSL:
openssl dhparam -out /var/www/example/sslcert/dh-strong.pem 2048
Nach dem Login kopieren

add dhparam zum options Objekt:

hinzufügen
const options = {
  // ...
  dhparam: fs.readFileSync("/var/www/example/sslcert/dh-strong.pem")
};
Nach dem Login kopieren

Schlussfolgerung:

https ist wesentlich. Node.js bietet robuste SSL/TLS -Optionen für sichere Webanwendungen. Lassen Sie uns das Zertifikatmanagement vereinfachen, während HSTS und stärkere DH -Parameter die Sicherheit weiter verbessern.

Der FAQS -Abschnitt wurde für die Kürze weggelassen, die bereitgestellten Informationen deckt jedoch die Kernaspekte des Originaltextes ab.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie SSL/TLS mit node.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage