Installasjon av SSL-sertifikat: Let's Encrypt
Vi viser steg for steg hvordan du henter et gratis SSL-sertifikat fra Let's Encrypt med Certbot, installerer det på Nginx eller Apache, og setter opp automatisk fornyelse og HTTPS-omdirigering.

For å installere et SSL-sertifikat må domenet ditt peke til serveren og port 80 må være åpen. Du installerer Certbot på serveren og kjører kommandoen sudo certbot --nginx eller --apache. Certbot henter sertifikatet, konfigurerer webserveren og setter opp automatisk fornyelse. Siste steg er å teste fornyelsen med certbot renew --dry-run.
Hva er Let's Encrypt og Certbot?
Let's Encrypt er en sertifiseringsinstans drevet av den ideelle organisasjonen ISRG, som utsteder domenevaliderte (DV) sertifikater gratis. Hvis du lurer på hva et sertifikat brukes til og hvilke typer som finnes, kan du først lese artikkelen Hva er et SSL-sertifikat.
Certbot er den offisielle klienten som er utviklet av EFF, og som snakker med Let's Encrypt via ACME-protokollen. Den ber om sertifikatet, bekrefter at domenet tilhører deg, konfigurerer Nginx eller Apache og planlegger fornyelsen.
Sertifikater fra Let's Encrypt er kortvarige. Standard gyldighet er 90 dager, og organisasjonen har varslet at perioden vil bli forkortet gradvis. Stol derfor alltid på automatisk fornyelse i stedet for manuell.
Sjekkliste før installasjon
Det Certbot oftest feiler på, er domenebekreftelsen. Hvis punktene under er på plass, er installasjonen vanligvis ferdig på noen minutter.
- A- og AAAA-postene til domenet peker til riktig server-IP (hvis det finnes en AAAA-post, må nettstedet også svare over IPv6)
- Port 80 og 443 er åpne i brannmuren på serveren
- Nginx eller Apache kjører, og det er definert en serverblokk eller virtuell vert for domenet
- Du kan koble til serveren via SSH med en bruker som har sudo-rettigheter
- Hvis du bruker en proxy som Cloudflare, vet du hvordan proxy-innstillingen står ved første installasjon
dig +short ornek.com A
dig +short www.ornek.com A
sudo ufw status
# Hvis du bruker Nginx
sudo ufw allow 'Nginx Full'Installere Certbot steg for steg
Den offisielle nettsiden til Certbot, certbot.eff.org, anbefaler snap-pakken for Ubuntu og Debian. Da holder Certbot seg oppdatert uavhengig av distribusjonen. Hvis du ikke vil bruke snap, fungerer også distribusjonens egne apt-pakker.
Med snap (anbefalt)
Hvis det allerede er installert en certbot-pakke med apt på systemet, fjerner du den først for å unngå konflikter.
sudo apt remove certbot
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
certbot --versionMed apt-pakken
Med denne metoden må du også installere tilleggspakken som passer til webserveren.
sudo apt update
# For Nginx
sudo apt install certbot python3-certbot-nginx
# For Apache
sudo apt install certbot python3-certbot-apacheHente sertifikatet og installere det på serveren
Takket være tillegget leser Certbot den eksisterende konfigurasjonen din og spør hvilke domener den skal hente sertifikat for, basert på verdiene i server_name eller ServerName. Det er best å ta med både domenet uten www og www-versjonen i samme sertifikat.
Under kommandoen blir du bedt om en e-postadresse og om å godta vilkårene. For verifiseringen publiserer Certbot en midlertidig fil under stien .well-known/acme-challenge, og Let's Encrypt leser den filen over port 80 for å bekrefte at domenet tilhører deg.
- Sertifikatfilene lagres under /etc/letsencrypt/live/ornek.com/.
- fullchain.pem inneholder både serversertifikatet og mellomsertifikatet. Bruk denne i webserveren.
- privkey.pem er den private nøkkelen. Ikke kopier den noe sted, og ikke del den.
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.comSlik setter du opp automatisk fornyelse
Snap- og apt-pakkene legger til en systemd-timer eller en cron-oppgave under installasjonen. Oppgaven kjører flere ganger i døgnet og fornyer sertifikater som nærmer seg utløp. Det eneste du må gjøre, er å teste at fornyelsen faktisk fungerer.
Siden Let's Encrypt har sluttet å sende e-postvarsler om utløp, er det lurt å følge med på utløpsdatoen med eget overvåkingsverktøy. Du kan også definere en fornyelseskrok (deploy hook) slik at webserveren leser det nye sertifikatet etter fornyelsen.
sudo certbot renew --dry-run
sudo certbot certificates
systemctl list-timers | grep -i certbot
# Hook som laster Nginx på nytt etter hver vellykkede fornyelse
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 og blandet innhold
Certbots tillegg for Nginx og Apache legger vanligvis til regelen som sender HTTP-forespørsler videre til HTTPS for deg. Vil du gjøre det manuelt, bruker du en permanent 301-omdirigering. Da flytter søkemotorene verdien fra de gamle adressene over til de nye.
Hos delte webhoteller med Apache gjør du det samme med .htaccess-filen. Detaljerte regler finner du i guiden vår om htaccess-omdirigering. Hvis siden etter omdirigeringen fortsatt laster bilder, skript eller fonter med http://, viser nettleseren en advarsel om blandet innhold. Bytt disse adressene til https eller relative stier.
server {
listen 80;
listen [::]:80;
server_name ornek.com www.ornek.com;
return 301 https://ornek.com$request_uri;
}HSTS og sikre TLS-innstillinger
Når omdirigeringen fungerer, kan du med HSTS-headeren be nettleseren om å åpne nettstedet ditt kun med HTTPS fra nå av. Headeren hindrer at noen kan gripe inn etter det første besøket og nedgradere forbindelsen til HTTP.
Ikke slå på HSTS med lang varighet i all hast. Hvis ett av underdomenene dine fortsatt ikke støtter HTTPS, blir den adressen utilgjengelig. Prøv først med en kort max-age-verdi, og forleng varigheten hvis alt fungerer. Legg til alternativene includeSubDomains og preload først når du er sikker på at alle underdomener er klare.
Certbots tillegg for Nginx og Apache legger til en konfigurasjonsfil med oppdaterte og sikre TLS-protokollinnstillinger. Hold de gamle TLS 1.0- og 1.1-versjonene avslått. Å kontrollere serverkonfigurasjonen jevnlig med åpne testverktøy som SSL Labs gjør at du oppdager en overset svak innstilling tidlig.
# Inne i 443-serverblokken
add_header Strict-Transport-Security "max-age=300" always;Verifisering og vanlige feil
Ikke nøy deg med låsikonet i nettleseren, men verifiser installasjonen også fra kommandolinjen. Kommandoene under viser hvem som har utstedt sertifikatet, utløpsdatoen og omdirigeringskjeden.
| Feil | Løsning |
|---|---|
| Timeout during connect | Port 80 er stengt, eller DNS peker til feil server. Kontroller brannmuren og A-posten. |
| Unauthorized / 404 challenge | Verifiseringsfilen kan ikke leses. Kontroller webroot-stien og omdirigeringsreglene. |
| Too many certificates | Det er gjort for mange forsøk på kort tid. Gjør forsøkene med --dry-run eller --staging. |
| Could not find a server block | Domenet mangler i server_name-linjen. Legg det til i serverblokken og test med nginx -t. |
| Gammelt sertifikat i nettleseren | Webserveren er ikke lastet på nytt. Bruk reload-kommandoen 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-sertifikat, Windows og kontrollpaneler
Et wildcard-sertifikat på formen *.ornek.com hentes kun med DNS-verifisering. Hvis Certbot har et eget tillegg for DNS-leverandøren din, skjer fornyelsen automatisk. Sertifikater hentet med --manual krever derimot at du legger til TXT-posten manuelt hver gang.
Bruker du Windows Server og IIS, kan du nå samme resultat med Windows-klienter som støtter ACME-protokollen. Kontrollpaneler hos webhoteller tilbyr ofte Let's Encrypt-støtte som et valg med ett klikk. Da trenger du ikke skrive kommandoer på serveren.
HTTPS er bare én del av arbeidet med hastighet og sikkerhet. Når du ser det sammen med HTTP/2, cache-headere og komprimering, får du både tillit og ytelse. I prosjektene våre med SEO-vennlig webdesign planlegger vi disse lagene fra begynnelsen.
sudo certbot certonly --manual --preferred-challenges dns \
-d ornek.com -d "*.ornek.com"Vanlige spørsmål
01Er det en sikkerhetsforskjell mellom gratis og betalt SSL?
Når det gjelder krypteringsstyrke, er det ingen forskjell. Begge bruker de samme standardene. Betalte sertifikater tilbyr tilleggstjenester som organisasjonsvalidering (OV, EV), garantiforsikring eller support. Hvis det ikke finnes et kontraktskrav fra en bedrift, er Let's Encrypt nok for de fleste nettsteder.
02Hva skjer hvis sertifikatet ikke fornyes?
Når et sertifikat har utløpt, viser nettleserne besøkende en sikkerhetsadvarsel i fullskjerm, og de fleste forlater siden. Betalingssider og API-forbindelser slutter også å fungere. Derfor bør du teste fornyelsen på installasjonsdagen og følge med på utløpsdatoen.
03Fungerer Certbot sammen med Cloudflare?
Ja, men HTTP-verifiseringen kan noen ganger stoppe opp når proxyen er slått på. Du kan bruke Cloudflares eget opprinnelsessertifikat for serveren, eller kjøre Certbot med DNS-verifisering. Å velge SSL-modus Full (strict) er den sikreste løsningen.
Et nettsted som er satt opp med Certbot, har testet fornyelse og omdirigerer til HTTPS, gir trygghet både for besøkende og for søkemotorer. Vil du ta sertifikat, omdirigering og serverinnstillinger i ett grep, kan du se på tjenesten hastighet og ytelse eller våre webdesign-løsninger som dekker hele prosessen. Skal du starte en nettbutikk, kan du også se på nettbutikkplattformen som håndterer sertifikat og serverside for deg, og du kan skrive til oss via kontaktsiden hvis du har spørsmål.


