HTTPS är inte valfritt längre. Webbläsare markerar HTTP-sidor som osäkra, sökmotorer rankar HTTPS-sidor högre, och besökare förväntar sig hänglåset i adressfältet. Med Let’s Encrypt får du SSL-certifikat helt gratis, och med Certbot sköter förnyelsen sig själv.
Den här guiden visar hur du installerar och konfigurerar allt på en VPS med Ubuntu och Nginx eller Apache.
Förutsättningar
Innan du börjar behöver du:
- En VPS med Ubuntu (22.04 eller nyare)
- En webbserver installerad (Nginx eller Apache)
- Ett domännamn som pekar på serverns IP-adress via en A-post i DNS
- SSH-åtkomst till servern
Kontrollera att din domän pekar rätt:
dig +short dindomän.se
Om dig inte finns installerat, kör sudo apt install dnsutils -y först. Om kommandot visar din servers IP-adress är du redo att fortsätta.
Vad är Let’s Encrypt?
Let’s Encrypt är en gratis, automatiserad certifikatutfärdare (CA) som drivs av Internet Security Research Group (ISRG). Certifikaten är giltiga i 90 dagar och kan förnyas automatiskt med verktyget Certbot.
Till skillnad från traditionella SSL-certifikat som kan kosta hundratals kronor per år kostar Let’s Encrypt ingenting. Det stöds av alla moderna webbläsare och är den överlägset vanligaste lösningen för SSL på VPS-servrar.
Installera Certbot
Certbot är det officiella verktyget för att hämta och förnya Let’s Encrypt-certifikat. Det officiella sättet att installera Certbot är via snap, vilket säkerställer att du alltid har den senaste versionen:
sudo snap install certbot --classic
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Snap-paketet inkluderar plugins för både Nginx och Apache automatiskt, så installationen är densamma oavsett vilken webbserver du kör.
Hämta certifikat - Nginx
Certbot kan automatiskt konfigurera Nginx åt dig. Se till att du har en server block för din domän i Nginx-konfigurationen först.
Kontrollera att din Nginx-config har rätt server_name:
sudo nano /etc/nginx/sites-available/default
Se till att denna rad matchar din domän:
server_name dindomän.se www.dindomän.se;
Testa att konfigurationen är giltig:
sudo nginx -t
Kör sedan Certbot:
sudo certbot --nginx -d dindomän.se -d www.dindomän.se
Certbot kommer att:
- Verifiera att du kontrollerar domänen
- Hämta ett certifikat från Let’s Encrypt
- Uppdatera din Nginx-konfiguration med SSL-inställningar
- Konfigurera automatisk omdirigering från HTTP till HTTPS
Du blir ombedd att ange en e-postadress (för förnyelsepåminnelser) och godkänna villkoren.
Hämta certifikat - Apache
Processen för Apache är nästan identisk:
sudo certbot --apache -d dindomän.se -d www.dindomän.se
Certbot identifierar automatiskt rätt VirtualHost och uppdaterar konfigurationen.
Verifiera att HTTPS fungerar
Öppna din domän i en webbläsare med https:// och kontrollera att hänglåset visas.
Du kan också testa från terminalen:
curl -I https://dindomän.se
Svaret bör börja med HTTP/2 200 eller HTTP/1.1 200 OK.
För en mer detaljerad analys, kör SSL Labs-testet:
https://www.ssllabs.com/ssltest/analyze.html?d=dindomän.se
Sikta på betyg A eller högre.
Automatisk förnyelse
Let’s Encrypt-certifikat gäller i 90 dagar. Certbot installerar automatiskt en systemd-timer som körs två gånger om dagen och kontrollerar om några certifikat behöver förnyas (förnyelse sker när det är mindre än 30 dagar kvar). Du behöver inte göra något - men det är bra att verifiera att det fungerar.
Kontrollera att timern är aktiv (notera att snap-installerad Certbot använder ett annat timernamn):
sudo systemctl status snap.certbot.renew.timer
Testa förnyelse utan att faktiskt förnya:
sudo certbot renew --dry-run
Om testet lyckas är du säker på att automatisk förnyelse fungerar korrekt.
Stärk SSL-konfigurationen
Certbot skapar en fungerande konfiguration, men du kan stärka den ytterligare.
Inaktivera äldre TLS-versioner. TLS 1.0 och 1.1 har kända sårbarheter. Redigera din Nginx SSL-config:
ssl_protocols TLSv1.2 TLSv1.3;
Aktivera HSTS (HTTP Strict Transport Security). Det talar om för webbläsare att alltid använda HTTPS:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
Konfigurera OCSP Stapling för snabbare certifikatverifiering:
ssl_stapling on;
ssl_stapling_verify on;
Starta om Nginx efter ändringarna:
sudo nginx -t && sudo systemctl reload nginx
Certifikat för flera domäner
Om du hostar flera webbplatser på samma server kan du inkludera alla domäner i ett certifikat:
sudo certbot --nginx -d domän1.se -d www.domän1.se -d domän2.se -d www.domän2.se
Alternativt kan du köra Certbot separat för varje domän och få individuella certifikat. Individuella certifikat är enklare att hantera om du ofta lägger till eller tar bort domäner.
Wildcard-certifikat
Om du behöver ett certifikat som täcker alla subdomäner (till exempel *.dindomän.se) krävs DNS-verifiering:
sudo certbot certonly --manual --preferred-challenges dns -d "*.dindomän.se" -d dindomän.se
Certbot ber dig lägga till en TXT-post i din DNS.
Viktigt: Flaggan --manual innebär att automatisk förnyelse inte fungerar - Certbot kan inte skapa DNS-poster åt dig utan manuell inmatning. När certifikatet löper ut efter 90 dagar måste du upprepa processen manuellt. Vill du att wildcard-certifikat ska förnyas automatiskt behöver du istället använda ett DNS-plugin för din DNS-leverantör (till exempel certbot-dns-cloudflare). Använd --manual bara om du faktiskt behöver wildcard och kan hantera manuell förnyelse.
Felsökning
Certbot klagar på att domänen inte pekar rätt - Kontrollera DNS med dig +short dindomän.se. Se till att A-posten pekar på serverns IP och att ändringen har propagerat.
Port 80 blockerad - Certbot behöver nå port 80 för verifiering. Kontrollera att brandväggen tillåter HTTP:
sudo ufw allow 80/tcp
Certifikat förnyades inte - Kontrollera loggen:
sudo journalctl -u snap.certbot.renew.service
Alternativt finns loggen i /var/log/letsencrypt/letsencrypt.log.
Nginx startar inte efter certifikatändring - Testa konfigurationen först:
sudo nginx -t
Felet visas tydligt i utmatningen och pekar dig mot rätt fil och rad.
Sammanfattning
Med Let’s Encrypt och Certbot tar det bara ett par minuter att gå från HTTP till HTTPS. Processen är:
- Installera Certbot med rätt webbserverplugin
- Kör Certbot med dina domännamn
- Verifiera att HTTPS fungerar
- Kontrollera att automatisk förnyelse är aktiv
Det finns ingen anledning att köra en webbplats utan HTTPS i dag. Certifikatet är gratis, installationen är enkel, och förnyelsen är automatisk.