Sikring af din Nginx-server med Let's Encrypt på Debian sikrer robust kryptering og forbedret sikkerhed for dine webapplikationer. Denne enkle proces kan forbedre dit websteds troværdighed og ydeevne markant.
- Gratis SSL/TLS-certifikater: Let's Encrypt leverer gratis, automatiserede og åbne certifikater, hvilket sparer omkostninger uden at gå på kompromis med sikkerheden.
- Automatisering: Automatiser nemt udstedelse og fornyelse af certifikater med Certbot, hvilket reducerer administrative omkostninger.
- Forbedret SEO: HTTPS foretrækkes af søgemaskiner, hvilket potentielt kan booste dit websteds placering.
- Forbedret sikkerhed: Beskyt følsomme data med stærk kryptering, hvilket sikrer en sikker forbindelse mellem din server og klienter.
- Tillid og troværdighed: Få brugernes tillid med HTTPS-hængelåsikonet, hvilket viser en forpligtelse til sikkerhed.
- Overholdelse: Opfyld industristandarder og lovmæssige krav til databeskyttelse.
Ved at sikre din Nginx-server med Let's Encrypt på Debian, kan du give dine brugere en sikker browsingoplevelse, mens du høster fordelene af forbedret SEO og brugertillid.
Lad os dykke ned i de nødvendige trin for at opsætte og konfigurere Let's Encrypt på din Debian-baserede server.
Opdater Debian Package Repositories før Certbot til Nginx-installation
Før du installerer Certbot, er det afgørende at sikre, at pakkedepoterne og de eksisterende pakker på dit Debian-system er opdateret. Ved at holde systemet opdateret sikrer du, at du installerer den nyeste version af Certbot og afhængigheder.
Udfør følgende kommandoer for at opdatere pakkedepoterne og opgradere de eksisterende pakker:
sudo apt update
sudo apt upgrade
Installer Certbot Nginx Plugin
Nu hvor dit Debian-system er opdateret, er næste trin at installere Certbot sammen med dets Nginx-plugin. Nginx-plugin'et er vigtigt, da det gør det muligt for Certbot at interagere med Nginx, automatisere opnåelsen og fornyelsen af certifikater og konfigurere Nginx til at bruge dem.
Kør følgende kommando for at installere både Certbot og Nginx plugin:
sudo apt install certbot python3-certbot-nginx
Certbot-konfiguration og SSL-certifikatgenerering
Efter at have installeret Certbot og dets Nginx-plugin, involverer det næste trin at køre Certbot for at generere og installere et SSL-certifikat til dit domæne. For at instruere Certbot om, at vi bruger Nginx, bruger vi --nginx
mulighed. Kommandoen til at køre Certbot indeholder også forskellige andre muligheder, der bidrager til en mere sikker opsætning.
Det --agree-tos
option fortæller Certbot, at du accepterer servicevilkårene for Let's Encrypt. Det --redirect
option instruerer Certbot om at konfigurere en permanent 301-omdirigering fra HTTP til HTTPS, hvilket sikrer, at al trafik til dit websted er krypteret. Det --hsts
option tilføjer en Strict-Transport-Security-header, der håndhæver sikre forbindelser til din server. Til sidst --staple-ocsp
indstillingen aktiverer OCSP-hæftning, en funktion, der forbedrer ydeevnen af SSL-forhandling, samtidig med at de besøgendes privatliv bevares.
Den e-mailadresse, du angiver med --email
mulighed bruges af Let's Encrypt til at sende meddelelser relateret til dit SSL-certifikat, såsom påmindelser om fornyelse og sikkerhedsmeddelelser.
Udskift venligst you@example.com
med din faktiske e-mailadresse og yourdomain.com
med dit domæne. Kør følgende kommando:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d yourdomain.com
Når kommandoen er udført, genererer Certbot et SSL-certifikat til dit domæne, konfigurerer Nginx til at bruge dette certifikat og anvender de angivne sikkerhedsindstillinger. Din servers forbindelse vil derfor være sikker, og din hjemmeside vil være tilgængelig via HTTPS.
Alternativ Certbot-konfigurationsmetode
For dem, der foretrækker en mere guidet og interaktiv tilgang, tilbyder Certbot en alternativ metode, der beder dig om oplysninger og konfigurationsvalg. Sådan bruger du denne metode:
Kør følgende kommando:
sudo certbot --nginx
Certbot starter en interaktiv session. Nedenfor er en gennemgang af de prompter, du kan støde på:
- Indtast e-mailadresse (bruges til hastefornyelse og sikkerhedsmeddelelser): Angiv din e-mailadresse. Let's Encrypt vil bruge dette til kommunikation vedrørende dine certifikater.
- Accepter servicevilkårene for Let's Encrypt: Du vil blive bedt om at acceptere servicevilkårene. Input
A
at blive enige. - Del din e-mail med Electronic Frontier Foundation for opdateringer om deres arbejde: Hvis du vil støtte EFF, så input
Y
for ja. Ellers inputN
for nr. - Hvilke navne vil du gerne aktivere HTTPS for: Certbot viser de domænenavne, den kan udstede certifikater til. Indtast de tal, der svarer til dine domæner, eller lad dem stå tomme for alle.
- Vælg den relevante handling: Du får mulighed for enten:
1
: Forsøg at geninstallere certifikatet2
: Forny og udskift certifikatet (grænse ~5 pr. 7 dage)
- Vælg, om du vil omdirigere HTTP-trafik til HTTPS eller ej: Du bliver spurgt, om du vil omdirigere HTTP-trafik til HTTPS. Dette er tilrådeligt for de fleste websteder:
1
: Ingen omdirigering – Foretag ingen yderligere ændringer i webserverens konfiguration.2
: Omdirigering – Foretag alle anmodninger omdirigeret for at sikre HTTPS-adgang.
2
for bedre sikkerhed.
Når du har gennemgået alle anvisningerne, og processen er fuldført, udsender Certbot en meddelelse, der ligner den tidligere nævnte, med angivelse af placeringen af dine certifikatfiler og yderligere information.
Prøvekørsel af certifikatfornyelse
Før du forpligter dig til en automatisk fornyelsesplan, er det god praksis at bekræfte, at fornyelsesprocessen fungerer korrekt. Du kan gøre dette ved at starte en tørkørsel, som simulerer fornyelsesprocessen uden at foretage egentlige ændringer:
sudo certbot renew --dry-run
Opsætning af certifikatfornyelsesplan
Forudsat at tørløbet forløber uden problemer, kan du nu gå videre til at planlægge automatiske certifikatfornyelser. For at begynde skal du åbne crontab-filen i redigeringstilstand med denne kommando:
sudo crontab -e
Tilføj derefter følgende linje i bunden af filen. Denne linje indstiller et dagligt fornyelsestjek kl. 02.30:
30 2 * * * /usr/bin/certbot renew --quiet
Når du har gemt og lukket filen, har du opsat en automatisk proces. Hver dag tjekker cron, om nogen certifikater skal fornys. Det --quiet
flag sikrer, at denne opgave kører i baggrunden uden at generere output, medmindre der opstår en fejl.
Forbedre SSL med NGINX-konfiguration
I denne valgfri sektion vil du justere dit domænes NGINX-konfiguration for at optimere ydeevnen. Dette involverer opsætning af SSL-certifikater, konfiguration af sessionsparametre og implementering af sikkerhedsforbedringer.
Rediger NGINX-konfigurationsfilen
For at starte skal du have adgang til konfigurationsfilen for dit domæne i NGINX. Udfør følgende kommando:
sudo nano /etc/nginx/sites-available/your_domain
Dette åbner konfigurationsfilen for dit domæne i en teksteditor kaldet nano. Når du er med, skal du foretage følgende justeringer i server
blok.
Angiv SSL-certifikater og nøgle
Indstil først stien til dit SSL-certifikat og dets tilhørende private nøgle:
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
Konfigurer SSL-sessioner
Nu skal du konfigurere SSL-sessionsparametrene. Dette styrer, hvor længe sessioner gemmes og sikrer effektiv genetablering af sikre forbindelser:
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m; # approximately 40000 sessions
ssl_session_tickets off;
Konfigurer Diffie-Hellman-parametre
For yderligere at forbedre sikkerheden bør du konfigurere Diffie-Hellman (DH) parametre. DH-algoritmen sikrer sikker nøgleudveksling ved etablering af en SSL/TLS-forbindelse.
For at begynde skal du generere en Diffie-Hellman parameterfil. Generelt er en længere nøglelængde lig med stærkere sikkerhed. Almindelige nøglelængder er 2048 og 4096 bit. Mens 2048 bits ofte anses for tilstrækkelige, giver valg af 4096 bit ekstra sikkerhed, omend på bekostning af ydeevnen. Overvej dine sikkerhedskrav og din servers muligheder, før du træffer en beslutning.
For at generere en 2048-bit DH-parameterfil skal du bruge følgende kommando:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Alternativt, for at øge sikkerheden, kan du oprette en 4096-bit nøgle ved at udføre denne kommando:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
Efter generering af filen skal du angive dens placering i din NGINX-konfiguration. Opdater ssl_dhparam
direktiv med stien til den fil, du lige har oprettet:
ssl_dhparam /etc/ssl/certs/dhparam.pem;
Indstil protokoller og chiffer
For at sikre høj sikkerhed og kompatibilitet skal du angive, hvilke SSL-protokoller og chiffer der skal bruges:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers [long string of ciphers here];
ssl_prefer_server_ciphers off;
Implementer HSTS
Tilføj HTTP Strict Transport Security (HSTS) for at håndhæve sikre forbindelser:
add_header Strict-Transport-Security "max-age=63072000" always;
Aktiver OCSP-hæftning
OCSP-hæftning er en funktion, der forbedrer SSL-certifikatbekræftelsesprocessen. Slå den til, og sørg for, at tillidskæden er verificeret ved hjælp af Root CA og Intermediate-certifikater:
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
Angiv DNS Resolver
Indstil endelig IP-adressen på din DNS-resolver. Dette er vigtigt for OCSP-hæftning:
resolver 1.1.1.1
Sørg for at udskifte 1.1.1.1
med den faktiske IP-adresse på din resolver, hvis du ikke ønsker at bruge den fra Cloudflare.
Valider og anvend ændringerne
Når du er færdig, skal du gemme og afslutte filen. Det er vigtigt at validere din NGINX-konfiguration for at sikre ingen syntaksfejl. Kør denne kommando for at kontrollere:
sudo nginx -t
Hvis der ikke er nogen problemer, skal du anvende ændringerne ved at genindlæse NGINX:
sudo systemctl restart nginx
Konklusion
Igennem denne artikel dækkede vi sikring af Nginx med Let's Encrypt SSL-certifikater på Debian 10, 11 og 12. Vi understregede vigtigheden af SSL-certifikater for sikker kommunikation mellem servere og klienter. Vi startede med at installere Certbot og forklarede, hvordan man får et gratis SSL-certifikat fra Let's Encrypt, konfigurerer Nginx til at bruge certifikatet, automatiserer fornyelse med cron-job og forbedrer sikkerheden med Diffie-Hellman-parametre.
Endelig er det vigtigt at overvåge logfiler og holde systemet opdateret regelmæssigt. Denne praksis hjælper dig med at holde dig informeret om potentielle problemer og beskytte din server mod de seneste sikkerhedssårbarheder.