bg-tutorials

So installierst du ein SSL-Zertifikat auf Node.js

In diesem Tutorial lernen Sie, wie Sie ein SSL-Zertifikat auf Node.js installieren, indem Sie das integrierte https-Modul verwenden. Im Gegensatz zu einem Webserver wie Apache oder Nginx lädt Node.js Ihr Zertifikat, den privaten Schlüssel und die CA-Kette direkt in JavaScript, sodass die „Installation“ innerhalb Ihres Anwendungscodes erfolgt.

CSR-Code in Node.js erzeugen

Wenn Sie noch kein SSL-Zertifikat beantragt haben, müssen Sie zunächst einen CSR (Certificate Signing Request) erstellen. Der CSR ist ein kleiner codierter Textblock, der Ihre Kontaktdaten und Ihren öffentlichen Schlüssel enthält und bei der Bestellung an die Zertifizierungsstelle übermittelt wird. Sie haben zwei Möglichkeiten:

Übermitteln Sie den CSR bei Ihrer Bestellung an die Zertifizierungsstelle. Nachdem die CA ihn validiert und Ihr SSL-Zertifikat ausgestellt hat, fahren Sie mit der unten beschriebenen Installation fort.

SSL-Zertifikat auf Node.js installieren

Schritt 1: Zertifikatsdateien vorbereiten

Nach der Validierung sendet Ihnen die Zertifizierungsstelle die Zertifikatsdateien per E-Mail. Entpacken Sie das Archiv. Sie sollten folgende Dateien haben:

  • yourdomain.crt, Ihr primäres Domain-Zertifikat.
  • yourdomain.ca-bundle, die Zwischenzertifikate (und Root-Zertifikate), die das CA-Bundle bilden.
  • yourdomain.key, der private Schlüssel, den Sie zusammen mit dem CSR erzeugt haben.

Browser müssen die Zwischenzertifikatskette erhalten, nicht nur Ihr Domain-Zertifikat, da sonst manche Clients die Verbindung ablehnen. Der sauberste Weg, die Kette in Node.js bereitzustellen, ist es, Ihr Zertifikat und das CA-Bundle in einer einzigen Full-Chain-Datei zusammenzuführen:

cat yourdomain.crt yourdomain.ca-bundle > fullchain.crt

Legen Sie die Dateien fullchain.crt und yourdomain.key an einem Ort ab, an dem Ihre App sie lesen kann, und stellen Sie sicher, dass der private Schlüssel nur für den Benutzer lesbar ist, der Node.js ausführt.

Schritt 2: HTTPS-Server in Node.js erstellen

Erstellen Sie eine Server-Datei. Für diese Demonstration nennen wir sie https_server.js, aber Sie können jeden beliebigen Dateinamen verwenden. Das folgende Beispiel verwendet CommonJS (require), das in jeder unterstützten Node.js-Version funktioniert. Ersetzen Sie die fett hervorgehobenen Pfade durch Ihre eigenen:

const https = require('https');
const fs = require('fs');

const options = {
  key: fs.readFileSync('/path/to/private.key'),
  cert: fs.readFileSync('/path/to/fullchain.crt'),
  // Recommended TLS hardening (2026): never negotiate below TLS 1.2
  minVersion: 'TLSv1.2'
};

https.createServer(options, (req, res) => {
  res.writeHead(200);
  res.end('Welcome to a Node.js HTTPS servern');
}).listen(443);

Sie müssen die fett markierten Teile durch Ihre eigenen Angaben ersetzen:

  • /path/to/private.key: der vollständige Pfad zu Ihrer privaten Schlüsseldatei.
  • /path/to/fullchain.crt: der vollständige Pfad zu der in Schritt 1 erstellten Full-Chain-Datei.

Hinweis zum Port: HTTPS verwendet standardmäßig den Port 443. Die Bindung an diesen Port erfordert erweiterte Berechtigungen. Hinter einem Reverse-Proxy oder in der Entwicklung bevorzugen Sie daher möglicherweise einen hohen Port wie 8443. Ändern Sie einfach den an listen() übergebenen Wert.

Bevorzugen Sie ES-Module? Wenn Ihr Projekt "type": "module" in package.json verwendet (oder eine .mjs-Datei), verwenden Sie stattdessen die import-Syntax. Die TLS-Optionen sind identisch:

import https from 'node:https';
import fs from 'node:fs';

const options = {
  key: fs.readFileSync('/path/to/private.key'),
  cert: fs.readFileSync('/path/to/fullchain.crt'),
  minVersion: 'TLSv1.2'
};

https.createServer(options, (req, res) => {
  res.writeHead(200);
  res.end('Welcome to a Node.js HTTPS servern');
}).listen(443);

Alternative: Kette mit der Option ca übergeben. Wenn Sie die Dateien lieber getrennt halten möchten, anstatt eine Full-Chain-Datei zu erstellen, lassen Sie cert auf Ihr Domain-Zertifikat verweisen und stellen Sie die Zwischenzertifikate über ein ca-Array bereit:

const options = {
  key: fs.readFileSync('/path/to/private.key'),
  cert: fs.readFileSync('/path/to/yourdomain.crt'),
  ca: [
    fs.readFileSync('/path/to/intermediate.crt'),
    fs.readFileSync('/path/to/ca_bundle.crt')
  ],
  minVersion: 'TLSv1.2'
};

Verwenden Sie Express? Übergeben Sie Ihre Express-app als Request-Handler. Die Zertifikatsoptionen bleiben genau gleich:

const express = require('express');
const https = require('https');
const fs = require('fs');

const app = express();
app.get('/', (req, res) => res.send('Hello over HTTPS'));

const options = {
  key: fs.readFileSync('/path/to/private.key'),
  cert: fs.readFileSync('/path/to/fullchain.crt'),
  minVersion: 'TLSv1.2'
};

https.createServer(options, app).listen(443);

Schritt 3: Node.js-HTTPS-Server starten

Führen Sie den folgenden Befehl aus, um die App zu starten:

node https_server.js

Ihre Anwendung stellt den Datenverkehr nun über HTTPS bereit. Für eine Produktionsumgebung sollten Sie sie unter einem Prozessmanager (zum Beispiel PM2 oder einem systemd-Dienst) ausführen, damit sie automatisch neu startet und Neustarts überlebt.

Schritt 4: SSL-Installation testen

Testen Sie Ihre SSL-Installation auf mögliche Fehler oder Schwachstellen mit einem unserer SSL-Checker-Tools. Sie können die Kette auch über die Kommandozeile überprüfen:

echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates

Dies gibt den Aussteller und die Gültigkeitsdaten des Zertifikats aus und bestätigt, dass Ihr Node.js-Server das richtige Zertifikat präsentiert.

Wo kann man ein SSL-Zertifikat für Node.js kaufen?

SSL Dragon ist Ihre Quelle für alle Ihre SSL-Bedürfnisse. Wir bieten einige der niedrigsten Preise auf dem Markt für unser gesamtes Sortiment an SSL-Produkten und haben uns mit den besten SSL-Marken der Branche zusammengeschlossen, um starke Sicherheit und engagierten Support zu bieten. Alle unsere SSL-Zertifikate sind vollständig mit Node.js-Anwendungen kompatibel.

Schnelle Ausstellung, starke Verschlüsselung, 99,99 % Browservertrauen, engagierter Support und eine 25-tägige Geld-zurück-Garantie.

Häufig gestellte Fragen

Wie aktiviere ich HTTPS in Node.js?

Verwenden Sie das integrierte https-Modul. Lesen Sie Ihren privaten Schlüssel und das Full-Chain-Zertifikat mit fs.readFileSync() ein, übergeben Sie sie als key– und cert-Optionen an https.createServer(), und rufen Sie .listen(443) auf. Node.js übernimmt den TLS-Handshake für Sie; es gibt keinen separaten Webserver zu konfigurieren.

Benötige ich die Option ca in Node.js?

Sie müssen die Zwischenzertifikatskette bereitstellen, benötigen dafür aber nicht unbedingt die Option ca. Der einfachste Ansatz besteht darin, Ihr Domain-Zertifikat und das CA-Bundle in einer Full-Chain-Datei zusammenzuführen und cert darauf zu verweisen. Verwenden Sie das ca-Array nur, wenn Sie das Zertifikat und die Zwischenzertifikate lieber in getrennten Dateien halten möchten.

Warum kann mein Node.js-Server nicht an Port 443 gebunden werden?

Unter Linux und macOS sind Ports unter 1024 privilegiert. Die direkte Bindung an Port 443 erfordert erweiterte Berechtigungen. Deshalb betreiben viele Setups Node.js auf einem hohen Port wie 8443 hinter einem Reverse-Proxy (Nginx oder einem Load Balancer), der TLS terminiert oder weiterleitet. Für die Entwicklung ändern Sie einfach den an listen() übergebenen Wert.

Kann ich import statt require für den HTTPS-Server verwenden?

Ja. CommonJS (require) funktioniert in jeder unterstützten Node.js-Version, aber wenn Ihr Projekt als ES-Modul konfiguriert ist („type“: „module“ in package.json oder eine .mjs-Datei), können Sie stattdessen import https from ’node:https‘ verwenden. Die TLS-Optionen sind in beiden Fällen identisch.

Wie überprüfe ich, ob das SSL-Zertifikat auf Node.js funktioniert?

Öffnen Sie Ihre Website in einem Browser und prüfen Sie, ob das Schloss-Symbol angezeigt wird, führen Sie sie durch unsere SSL-Checker-Tools, oder fragen Sie sie über das Terminal mit echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com ab, um das vom Server präsentierte Zertifikat zu überprüfen.

Fazit

Die Installation eines SSL-Zertifikats auf Node.js läuft darauf hinaus, ein Full-Chain-Zertifikat zu erstellen, es und Ihren privaten Schlüssel mit fs.readFileSync() einzulesen, sie an https.createServer() mit minVersion: ‚TLSv1.2‘ zu übergeben und die App mit node https_server.js zu starten.

Benötigen Sie zunächst ein Zertifikat? Durchsuchen Sie unsere SSL-Zertifikate.

Sparen Sie 10% auf SSL-Zertifikate, wenn Sie noch heute bestellen!

Schnelle Ausstellung, starke Verschlüsselung, 99,99% Browser-Vertrauen, engagierter Support und 25-tägige Geld-zurück-Garantie. Gutscheincode: SAVE10

A detailed image of a dragon in flight
Geschrieben von

Erfahrener Content-Autor, spezialisiert auf SSL-Zertifikate. Verwandeln Sie komplexe Cybersicherheitsthemen in klare, ansprechende Inhalte. Tragen Sie durch wirkungsvolle Narrative zur Verbesserung der digitalen Sicherheit bei.