Node.js-https-Modul
httpsEs ist ein integriertes Kernmodul von Node.js, das zum Erstellen von HTTPS-Servern und -Clients dient und sichere HTTP-Anfragen und -Antworten verarbeitet. HTTPS ist ein sicheres Übertragungsprotokoll, das auf HTTP aufsetzt und mittels SSL/TLS verschlüsselt wird.
undhttpIm Vergleich zum Modulhttpssind die wichtigsten Unterschiede:
- Verwendet SSL/TLS zur Verschlüsselung der Kommunikation
- Der Standardport ist 443 statt 80
- Ein digitales Zertifikat ist erforderlich, um die Identität des Servers zu verifizieren
Kernfunktionen
HTTPS-Server erstellen
Beispiel
const fs = require('fs');
// Zertifikatsdateien lesen
const options = {
key: fs.readFileSync('server-key.pem'),
cert: fs.readFileSync('server-cert.pem')
};
// HTTPS-Server erstellen
const server = https.createServer(options, (req, res) => {
res.writeHead(200);
res.end('Hallo HTTPS-Welt!');
});
server.listen(443, () => {
console.log('HTTPS-Server läuft auf Port 443');
});
HTTPS-Anfrage stellen
Beispiel
https.get('https://example.com', (res) => {
console.log('Statuscode:', res.statusCode);
console.log('Anfrage-Header:', res.headers);
res.on('data', (d) => {
process.stdout.write(d);
});
}).on('error', (e) => {
console.error(e);
});
Schlüsselkonzepte
SSL/TLS-Zertifikate
Ein HTTPS-Server benötigt die folgenden Zertifikatsdateien:
key: Datei mit privatem Schlüssel (.key oder .pem)cert: Zertifikat mit öffentlichem Schlüssel (.crt oder .pem)- Optional
ca: Zwischenzertifikat der Zertifizierungsstelle (CA)
Sie können OpenSSL verwenden, um selbstsignierte Zertifikate für Entwicklung und Tests zu generieren:
Beispiel
Anfragen und Antworten
httpsDie API des Moduls isthttpfast identisch mit dem Modul; die Hauptobjekte umfassen:
https.Server: HTTPS-Server-Klassehttps.request(): HTTPS-Anfragen stellenhttps.get(): Komfortmethode zum Ausführen von GET-Anfragen
Praktische Anwendungsszenarien
- Sichere Webdienste: Webanwendungen erstellen, die verschlüsselte Übertragung erfordern
- API-Aufrufe: HTTPS-APIs von Drittanbietern sicher aufrufen
- Microservice-Kommunikation: Sichere Kommunikation zwischen Diensten
- Proxy-Server: Sichere Proxy-Dienste erstellen
Sicherheits-Best-Practices
- Verwenden Sie immer HTTPS anstelle von HTTP, um sensible Daten zu übertragen
- Aktualisieren Sie SSL/TLS-Zertifikate regelmäßig
- Verwenden Sie starke Cipher Suites und sichere Protokollversionen
- Erwägen Sie die Verwendung kostenloser Zertifizierungsstellen wie Let's Encrypt
- Vermeiden Sie die Verwendung selbstsignierter Zertifikate in Produktionsumgebungen
DurchhttpsMit dem Modul können Node.js-Entwickler auf einfache Weise sichere Netzwerkanwendungen und -dienste erstellen und dabei die Privatsphäre und Integrität der Daten während der Übertragung schützen.
Integrierte Module in Node.js