← Tillbaka till artiklar
Säkerhet2026-02-28·9 min läsning

SSL/TLS Konfiguration – HTTPS för Din VPS

Konfigurera SSL/TLS korrekt på din VPS med Let's Encrypt. Certifikathantering, Nginx-konfiguration och säkerhetshärdning.

Varför HTTPS är obligatoriskt

HTTPS krypterar all kommunikation mellan webbläsare och server. Utan det skickas lösenord, formulärdata och session-cookies i klartext. Dessutom:

  • Google rankar HTTPS-sidor högre
  • Moderna webbläsare markerar HTTP-sidor som "Inte säkert"
  • HTTP/2 och HTTP/3 kräver TLS
  • Användare förväntar sig hänglåsikonen

Installera Let's Encrypt med Certbot

Let's Encrypt erbjuder gratis SSL-certifikat med 90 dagars giltighet och automatisk förnyelse:

# Installera Certbot för Nginx
sudo apt install certbot python3-certbot-nginx -y

# Skapa certifikat
sudo certbot --nginx -d dindomän.se -d www.dindomän.se

# Testa automatisk förnyelse
sudo certbot renew --dry-run

Certbot konfigurerar automatiskt Nginx med rätt certifikatfiler och HTTPS-redirect.

Härdad Nginx TLS-konfiguration

Standard-konfigurationen duger men kan förbättras. Redigera din Nginx server-block:

server {
    listen 443 ssl http2;
    server_name dindomän.se www.dindomän.se;

    # Certifikatfiler
    ssl_certificate /etc/letsencrypt/live/dindomän.se/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/dindomän.se/privkey.pem;

    # Protokoll – Inaktivera gamla versioner
    ssl_protocols TLSv1.2 TLSv1.3;

    # Cipher suites – Moderna och säkra
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;

    # HSTS – Tvinga HTTPS i 1 år
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

    # OCSP Stapling
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 1.1.1.1 8.8.8.8;

    # Session cache
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;
    ssl_session_tickets off;
}

# Redirect HTTP till HTTPS
server {
    listen 80;
    server_name dindomän.se www.dindomän.se;
    return 301 https://$host$request_uri;
}

Testa din konfiguration

Kör SSL Labs-testet mot din domän för att få betyg A+:

# Testa lokalt med openssl
openssl s_client -connect dindomän.se:443 -servername dindomän.se

# Kontrollera certifikatets utgångsdatum
echo | openssl s_client -connect dindomän.se:443 2>/dev/null | openssl x509 -noout -dates

Certifikatövervakning

Automatisera bevakning av certifikatets utgångsdatum:

#!/bin/bash
# check-cert.sh
DOMAIN="dindomän.se"
EXPIRY=$(echo | openssl s_client -connect $DOMAIN:443 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2)
DAYS_LEFT=$(( ($(date -d "$EXPIRY" +%s) - $(date +%s)) / 86400 ))

if [ $DAYS_LEFT -lt 14 ]; then
    echo "VARNING: SSL-certifikat för $DOMAIN går ut om $DAYS_LEFT dagar!" | mail -s "SSL-varning" admin@dindomän.se
fi

Vanliga misstag

  • Mixed content – HTTP-resurser på en HTTPS-sida. Kontrollera alla bilder, skript och stylesheets
  • Glömd redirect – HTTP-versionen ska alltid redirecta till HTTPS
  • Certifikatkedja – Använd fullchain.pem, inte bara cert.pem
  • Förnyelse-fel – Kontrollera att cron-jobbet för certbot renew fungerar

Sammanfattning

SSL/TLS-konfiguration tar 10 minuter med Let's Encrypt och Certbot, men skillnaden i säkerhet och förtroende är enorm. Härda konfigurationen, övervaka certifikatets giltighet, och testa regelbundet.