Installera SSL-certifikat: Let's Encrypt
Vi går steg för steg igenom hur du skaffar ett gratis SSL-certifikat från Let's Encrypt med Certbot, installerar det på Nginx eller Apache, ställer in automatisk förnyelse och HTTPS-omdirigering.

För att installera ett SSL-certifikat måste din domän peka på servern och port 80 vara öppen. Du installerar Certbot på servern och kör sudo certbot --nginx eller --apache; Certbot hämtar certifikatet, konfigurerar webbservern och sätter upp automatisk förnyelse. Sista steget är att testa förnyelsen med certbot renew --dry-run.
Vad är Let's Encrypt och Certbot?
Let's Encrypt är en certifikatutfärdare som drivs av den ideella organisationen ISRG och utfärdar domänvaliderade (DV) certifikat gratis. Undrar du vad ett certifikat gör och vilka typer som finns kan du först läsa vårt inlägg Vad är ett SSL-certifikat.
Certbot är den officiella klienten, utvecklad av EFF, som pratar med Let's Encrypt via ACME-protokollet. Den begär certifikatet, verifierar att domänen tillhör dig, konfigurerar Nginx eller Apache och schemalägger förnyelsen.
Let's Encrypt-certifikat är kortlivade; standardgiltigheten är 90 dagar och organisationen har meddelat att den successivt kommer att förkorta den. Lita därför alltid på automatisk förnyelse i stället för manuell.
Checklista före installationen
Det Certbot oftast misslyckas med är domänvalideringen. Är punkterna nedan klara tar installationen oftast några minuter.
- Domänens A- och AAAA-poster pekar på rätt server-IP (finns en AAAA-post måste webbplatsen svara även via IPv6)
- Port 80 och 443 är öppna i serverns brandvägg
- Nginx eller Apache körs och ett serverblock eller en virtuell värd är definierad för domänen
- Du kan ansluta till servern med SSH som användare med sudo-behörighet
- Använder du en proxy som Cloudflare ska du känna till proxyinställningen vid första installationen
dig +short ornek.com A
dig +short www.ornek.com A
sudo ufw status
# Om du använder Nginx
sudo ufw allow 'Nginx Full'Installera Certbot steg för steg
Certbots officiella webbplats certbot.eff.org rekommenderar snap-paketet för Ubuntu och Debian; då hålls Certbot uppdaterat oberoende av distributionen. Vill du inte använda snap fungerar även distributionens egna apt-paket.
Med snap (rekommenderas)
Om det redan finns ett certbot-paket installerat med apt på systemet ska du först ta bort det för att undvika konflikter.
sudo apt remove certbot
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
certbot --versionMed apt-paket
Med den här metoden måste du också installera tilläggspaketet som passar din webbserver.
sudo apt update
# För Nginx
sudo apt install certbot python3-certbot-nginx
# För Apache
sudo apt install certbot python3-certbot-apacheHämta certifikatet och installera det på servern
Tack vare tillägget läser Certbot din befintliga konfiguration och frågar för vilka domäner den ska hämta certifikat utifrån värdena i server_name eller ServerName. Det är tryggast att lägga till både den nakna domänen och www-versionen i samma certifikat.
Under kommandot ombeds du ange en e-postadress och godkänna användarvillkoren. Certbot publicerar en tillfällig fil på sökvägen .well-known/acme-challenge för verifieringen, och Let's Encrypt läser filen via port 80 för att bekräfta att domänen tillhör dig.
- Certifikatfilerna lagras under /etc/letsencrypt/live/ornek.com/.
- fullchain.pem innehåller serverns certifikat tillsammans med mellancertifikatet; använd den i webbservern.
- privkey.pem är den privata nyckeln; kopiera den inte någonstans och dela den inte.
sudo certbot --nginx -d ornek.com -d www.ornek.comsudo certbot --apache -d ornek.com -d www.ornek.comsudo certbot certonly --webroot -w /var/www/ornek.com/html \
-d ornek.com -d www.ornek.comSå ställer du in automatisk förnyelse
Snap- och apt-paketen lägger vid installationen till en systemd-timer eller ett cron-jobb. Det körs några gånger om dagen och förnyar certifikat som närmar sig utgångsdatum. Det enda du behöver göra är att testa att förnyelsen verkligen fungerar.
Eftersom Let's Encrypt har slutat skicka e-postpåminnelser om utgångsdatum är det en god vana att bevaka certifikatets utgångsdatum med ditt eget övervakningsverktyg. Du kan också definiera en förnyelsekrok (deploy hook) så att webbservern läser det nya certifikatet efter förnyelsen.
sudo certbot renew --dry-run
sudo certbot certificates
systemctl list-timers | grep -i certbot
# Hook som laddar om Nginx efter varje lyckad förnyelse
echo '#!/bin/sh
systemctl reload nginx' | sudo tee /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh
sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.shHTTPS-omdirigering och blandat innehåll
Certbots tillägg för Nginx och Apache lägger oftast till regeln som omdirigerar HTTP-förfrågningar till HTTPS åt dig. Vill du göra det för hand, använd en permanent 301-omdirigering; då för sökmotorerna över värdet från de gamla adresserna till de nya.
På delat webbhotell med Apache gör du samma sak med filen .htaccess; detaljerade regler finns i vår guide till htaccess-omdirigering. Om en bild, ett skript eller ett typsnitt på sidan fortfarande anropas med http:// efter omdirigeringen ger webbläsaren en varning om blandat innehåll; byt ut dessa adresser mot https eller en relativ sökväg.
server {
listen 80;
listen [::]:80;
server_name ornek.com www.ornek.com;
return 301 https://ornek.com$request_uri;
}HSTS och säkra TLS-inställningar
När omdirigeringen fungerar kan du med rubriken HSTS be webbläsaren att från och med nu bara öppna din webbplats via HTTPS. Rubriken hindrar att någon efter det första besöket kommer emellan och nedgraderar anslutningen till HTTP.
Slå inte på HSTS med lång giltighet i brådska. Om en av dina underdomäner fortfarande inte stöder HTTPS blir den adressen oåtkomlig. Prova först med ett kort max-age-värde och förläng tiden om allt fungerar; lägg till alternativen includeSubDomains och preload först när du är säker på att alla underdomäner är redo.
Certbots tillägg för Nginx och Apache lägger till en konfigurationsfil med aktuella och säkra TLS-protokollinställningar. Håll de gamla versionerna TLS 1.0 och 1.1 avstängda; genom att regelbundet kontrollera serverns konfiguration med offentliga testverktyg som SSL Labs kan du tidigt upptäcka en förbisedd svag inställning.
# Inuti serverblocket för 443
add_header Strict-Transport-Security "max-age=300" always;Verifiering och vanliga fel
Nöj dig inte med låsikonen i webbläsaren utan verifiera installationen också från kommandoraden. Kommandona nedan visar vem som utfärdat certifikatet, utgångsdatum och omdirigeringskedjan.
| Misstag | Lösning |
|---|---|
| Timeout during connect | Port 80 är stängd eller så pekar DNS på fel server; kontrollera brandväggen och A-posten. |
| Unauthorized / 404 challenge | Verifieringsfilen kan inte läsas; kontrollera webroot-sökvägen och omdirigeringsreglerna. |
| Too many certificates | För många försök på kort tid; gör testerna med --dry-run eller --staging. |
| Could not find a server block | Domänen saknas på raden server_name; lägg till den i serverblocket och testa med nginx -t. |
| Gammalt certifikat i webbläsaren | Webbservern laddades inte om; använd reload-kommandot eller deploy hook. |
curl -I http://ornek.com
curl -I https://www.ornek.com
openssl s_client -connect ornek.com:443 -servername ornek.com </dev/null 2>/dev/null \
| openssl x509 -noout -issuer -datesWildcard-certifikat, Windows och kontrollpaneler
Ett wildcard-certifikat på formen *.ornek.com hämtas endast med DNS-verifiering. Om Certbot har ett tillägg för din DNS-leverantör sker förnyelsen automatiskt; certifikat som hämtats med --manual kräver att du lägger till TXT-posten för hand varje gång.
Använder du Windows Server och IIS kan du nå samma resultat med Windows-klienter som stöder ACME-protokollet. Kontrollpaneler hos webbhotell erbjuder oftast stöd för Let's Encrypt som ett alternativ med ett klick; då behöver du inte skriva några kommandon på servern.
HTTPS är bara en del av arbetet med hastighet och säkerhet. Hanterar du det tillsammans med HTTP/2, cache-rubriker och komprimering vinner du både förtroende och prestanda; i våra projekt för SEO-anpassad webbdesign planerar vi dessa lager från början.
sudo certbot certonly --manual --preferred-challenges dns \
-d ornek.com -d "*.ornek.com"Vanliga frågor
01Finns det någon säkerhetsskillnad mellan gratis och betalt SSL?
Ingen skillnad i krypteringsstyrka; båda använder samma standarder. Betalcertifikat erbjuder extra tjänster som organisationsvalidering (OV, EV), garantiförsäkring eller support. Om inget företagsavtal kräver något annat räcker Let's Encrypt för de flesta webbplatser.
02Vad händer om certifikatet inte förnyas?
Med ett utgånget certifikat visar webbläsarna en säkerhetsvarning över hela sidan för besökaren och de flesta lämnar webbplatsen. Betalsidor och API-anslutningar slutar också fungera. Därför bör du testa förnyelsen på installationsdagen och bevaka utgångsdatumet.
03Fungerar Certbot när jag använder Cloudflare?
Ja, men HTTP-verifieringen kan ibland haka upp sig när proxyn är på. Du kan använda Cloudflares eget ursprungscertifikat eller köra Certbot med DNS-verifiering; att välja SSL-läget Full (strict) är det säkraste sättet.
En webbplats som installerats med Certbot, vars förnyelse är testad och som omdirigeras till HTTPS ger förtroende hos både besökare och sökmotorer. Vill du hantera certifikat, omdirigeringar och serverinställningar tillsammans kan du titta på vår tjänst för hastighet och prestanda eller våra webbdesignlösningar som täcker hela processen. Bygger du en butik kan du också titta på alternativen för en e-handelsplattform där certifikat- och serversidan sköts åt dig, och skriva till oss via kontaktsidan om du har frågor.


