— Node.js
Installera SSL i
Node.js
Två sätt: direkt TLS-terminering i Node med https/http2-modulerna, eller — vanligast i produktion — Node bakom Nginx som hanterar TLS.
Node.js har inbyggt stöd för TLS via https- och http2-modulerna. För produktionsmiljöer rekommenderar vi dock att låta Nginx eller Traefik terminera TLS och proxa till Node — det förenklar förnyelse, prestanda och säkerhet.
Så installerar du steg för steg
- 01
Skaffa certifikat och privat nyckel
Antingen från en CA (köpta) eller via certbot/acme.sh. Spara dem på säker plats utanför projektmappen, t.ex. /etc/ssl/dittforetag/.
- 02
Alternativ A: HTTPS direkt i Node
Minimal Express-server med TLS:
import https from 'node:https'; import fs from 'node:fs'; import express from 'express'; const app = express(); app.get('/', (_req, res) => res.send('Hello over HTTPS')); const options = { key: fs.readFileSync('/etc/ssl/dittforetag/privkey.pem'), cert: fs.readFileSync('/etc/ssl/dittforetag/fullchain.pem'), }; https.createServer(options, app).listen(443); - 03
Alternativ B: HTTP/2 i Node 22
Använd inbyggda http2-modulen för bättre prestanda:
import http2 from 'node:http2'; import fs from 'node:fs'; const server = http2.createSecureServer({ key: fs.readFileSync('/etc/ssl/dittforetag/privkey.pem'), cert: fs.readFileSync('/etc/ssl/dittforetag/fullchain.pem'), allowHTTP1: true, }); server.on('request', (req, res) => { res.writeHead(200); res.end('Hello over HTTP/2'); }); server.listen(443); - 04
Alternativ C: Node bakom Nginx (rekommenderat)
Låt Nginx terminera TLS och proxa till Node på port 3000. Se vår Nginx-guide och lägg till:
location / { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; } - 05
Lyssna inte direkt på port 443 som root
Använd setcap eller låt Nginx terminera. Aldrig
sudo node app.jsi produktion. - 06
Auto-förnyelse
Med Let's Encrypt: certbot --webroot eller acme.sh. Node måste reloadas efter förnyelse — använd PM2 graceful reload eller systemd reload hooks.
Vanliga frågor
Ska Node.js terminera TLS själv eller köra bakom Nginx?
I produktion: nästan alltid bakom Nginx eller Traefik. Det ger bättre prestanda, lättare certifikatförnyelse och centraliserad headers/HSTS. Direkt TLS i Node är OK för enkla setups eller microservices i privat nät.
Hur använder jag HTTP/2 i Node.js?
Använd inbyggda 'http2'-modulen istället för 'https'. ALPN-förhandling kräver Node 10.10+ och certifikat med korrekt SAN.
Var lägger jag privata nyckeln i Express-appar?
Aldrig i git. Använd miljövariabler eller en secret manager. Läs filerna från disk vid start (fs.readFileSync) och håll dem utanför projektmappen.
Läs vidare
Vill du att vi installerar åt dig?
Vi installerar och konfigurerar ditt SSL-certifikat på din miljö — du behöver inte röra något själv. Ingår utan extra kostnad vid köp.
- Svensk teknisk support
- Installation ingår
- Övervakning & utgångsalert
- Auto-förnyelse via ACME