Sådan sikrer du Apache med Let's Encrypt på Debian 12, 11 eller 10

Sikring af din Apache-webserver med et Let's Encrypt-certifikat er afgørende for at beskytte din hjemmeside og dine data. Denne guide vil lede dig gennem denne proces på Debian 12 Bookworm, Debian 11 Bullseye og Debian 10 Buster. Fokus her er på at implementere robuste sikkerhedsforanstaltninger og samtidig forenkle kompleksiteten, der ofte er forbundet med serveradministration.

Vigtigste fordele ved at bruge Let's Encrypt med Apache på Debian:

  • Omkostningseffektiv: Let's Encrypt tilbyder gratis SSL-certifikater, hvilket gør sikkerhed på højt niveau tilgængelig for alle.
  • Automatiske fornyelser: Let's Encrypt's automatiseringsfunktioner forenkler opnåelse og fornyelse af SSL-certifikater, hvilket reducerer risikoen for sikkerhedsbortfald.
  • Forbedret sikkerhed: SSL-certifikater fra Let's Encrypt giver stærk kryptering af data i transit, hvilket forbedrer den overordnede sikkerhed for din Apache-server på Debian.
  • Bred kompatibilitet: De fleste moderne webbrowsere genkender Let's Encrypt-certifikater, hvilket sikrer en smidig brugeroplevelse.
  • Proaktive sikkerhedsforanstaltninger: Med regelmæssige opdateringer og stringente politikker er Let's Encrypt en pålidelig forsvarslinje mod forskellige cybertrusler.

Ved at følge denne guide vil du lære, hvordan du sikrer din Apache-server på Debian ved hjælp af Let's Encrypt, hvilket øger dine webtjenesters sikkerhed og pålidelighed. Hold dig opdateret for detaljerede instruktioner om at opnå denne vigtige sikkerhedsopsætning.

Installer Certbot til Apache

Dette afsnit vil fokusere på at installere Certbot til Apache på et Debian-baseret Linux-system. Certbot er et kraftfuldt værktøj, der forenkler opnåelse og konfiguration af SSL-certifikater fra Let's Encrypt. Det fungerer hånd i hånd med Apache, så du kan aktivere HTTPS på dine servere.

Opdater Debian Package Repositories før Certbot-installation til Apache

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 og Apache Plugin

Nu hvor dit Debian-system er opdateret, er næste trin at installere Certbot sammen med dets Apache-plugin. Apache-plugin'et er vigtigt, da det gør det muligt for Certbot at interagere med Apache, automatisere opnåelse og fornyelse af certifikater og konfigurere Apache til at bruge dem. Kør følgende kommando for at installere både Certbot og Apache-plugin:

sudo apt install certbot python3-certbot-apache

Opsætning af Apache og Let's Encrypt Certificate

I dette afsnit guider vi dig gennem konfiguration af Apache og generering af et Let's Encrypt SSL-certifikat til dit domæne ved hjælp af Certbot. Vi vil også dække brugen af ​​forskellige muligheder, der forbedrer sikkerheden for din serverkonfiguration.

Certbot-konfiguration og SSL-certifikatgenerering på Apache med Debian

Efter installation af Certbot og dets Apache-plugin, er den næste handling at køre Certbot for at generere et SSL-certifikat til dit domæne. Kommandoen indeholder flere muligheder for at optimere sikkerheden.

Her er en oversigt over de anvendte muligheder:

  • --apache: Specificerer, at den anvendte webserver er Apache.
  • --agree-tos: Indikerer din accept af Let's Encrypts servicevilkår.
  • --redirect: Opsætter en permanent 301-omdirigering fra HTTP til HTTPS, hvilket sikrer, at al trafik er krypteret.
  • --hsts: Tilføjer en Strict-Transport-Security-header for at håndhæve sikre forbindelser.
  • --staple-ocsp: Aktiverer OCSP-hæftning, hvilket forbedrer SSL-forhandlingsydelsen, mens brugerens privatliv bevares.
  • --email: Dette er den e-mailadresse, hvortil du vil modtage meddelelser relateret til dit SSL-certifikat, såsom påmindelser om fornyelse og sikkerhedsadvarsler.

Erstatte you@example.com med din egentlige e-mail og yourdomain.com med dit domænenavn. Udfør følgende kommando:

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d yourdomain.com

Efter vellykket eksekvering vil Certbot generere et SSL-certifikat til dit domæne, konfigurere Apache til at bruge det og anvende de angivne sikkerhedsindstillinger. Din server vil nu være sikker, og din hjemmeside vil være tilgængelig via HTTPS.

Alternativ Certbot-konfigurationsmetode med Apache

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 --apache

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 at kommunikere om dine certifikater.
  • Accepter servicevilkårene for Let's Encrypt: Du vil blive bedt om at acceptere servicevilkårene. Indtast A for at blive enige.
  • Del din e-mail med Electronic Frontier Foundation for opdateringer om deres arbejde: Hvis du vil støtte EFF, indtast Y for ja. Ellers indtast N 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 certifikatet
    • 2: Forny og udskift certifikatet (grænse ~5 pr. 7 dage)
    • Vælg den mulighed, der passer til dine behov.
  • 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 omdirigering af alle anmodninger for at sikre HTTPS-adgang.
    • Vælg mulighed 2 for bedre sikkerhed.

Når du har gennemgået alle anvisningerne, og processen er færdig, udsender Certbot en meddelelse, der ligner den nævnte, med angivelse af placeringen af ​​dine certifikatfiler og yderligere information.

Automatisering af SSL-certifikatfornyelse med Cron

I dette afsnit opsætter vi en automatisk fornyelsesproces for dine SSL-certifikater ved hjælp af Cron, en indbygget jobplanlægning i Linux-baserede systemer. Lad os kryptere SSL-certifikater, som har en levetid på 90 dage, og det er vigtigt at forny dem, før de udløber, for at undgå tjenesteforstyrrelser. Certbot giver en kommando til at forny certifikater, og vi kan automatisere denne opgave ved hjælp af Cron.

Tør kørsel af certifikatfornyelse

Før du automatiserer fornyelsesprocessen, er det afgørende at sikre, at fornyelseskommandoen fungerer som forventet. Det kan vi gøre ved at udføre en tørkørsel, som simulerer fornyelsesprocessen uden at ændre certifikaterne. Kør følgende kommando for at starte en tørkørsel:

sudo certbot renew --dry-run

Planlægning af automatiske certifikatfornyelser

Hvis tørløbet er komplet uden fejl, kan vi planlægge automatiske certifikatfornyelser. Vi bruger Cron til at køre fornyelseskommandoen på et bestemt tidspunkt hver dag.

Åbn først crontab-filen i redigeringstilstand ved hjælp af følgende kommando:

sudo crontab -e

I slutningen af ​​filen skal du tilføje følgende linje for at planlægge et dagligt fornyelsestjek kl. 02:30:

30 2 * * * /usr/bin/certbot renew --quiet

Det --quiet option sikrer, at fornyelsesprocessen kører lydløst i baggrunden uden at producere noget output, medmindre der er en fejl.

Når du har tilføjet denne linje, skal du gemme og lukke filen. Du har nu konfigureret en automatisk fornyelsesproces for dine SSL-certifikater. Cron tjekker dagligt, om der skal fornys nogen certifikater, og fornyer dem efter behov. Dette sikrer, at din Apache-server altid bruger gyldige SSL-certifikater og opretholder en sikker brugerforbindelse.

Forbedre Apache SSL-konfiguration

I dette afsnit optimerer vi din Apache-servers ydeevne ved at ændre dens SSL-konfiguration. Dette involverer opsætning af SSL-certifikater, aktivering af HTTP/2, implementering af HTTP Strict Transport Security (HSTS) og konfiguration af SSL-protokoller og ciphers. Denne konfiguration kræver Apache-modulerne mod_ssl, mod_socache_shmcb, mod_rewrite, og mod_headers.

Rediger Apache-konfigurationsfilen

For at starte skal du have adgang til konfigurationsfilen for dit domæne i Apache. Udfør følgende kommando:

sudo nano /etc/apache2/sites-available/your_domain.conf

Dette åbner konfigurationsfilen for dit domæne i en teksteditor kaldet Nano. Når du er i, skal du foretage følgende justeringer i VirtualHost-blokken.

Omdiriger HTTP til HTTPS

Først opsætter vi en regel for at omdirigere al HTTP-trafik til HTTPS, hvilket sikrer, at alle forbindelser til din server er sikre. Denne regel udelukker anmodninger til .well-known/acme-challenge/ bibliotek, som bruges af Certbot til domænevalidering under certifikatudstedelsesprocessen. Tilføj følgende konfiguration i <VirtualHost *:80> blok:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]

Aktiver SSL og angiv certifikater

Dernæst inden for <VirtualHost *:443> blokere, aktiverer vi SSL og angiver stierne til dit SSL-certifikat og din private nøgle:

SSLEngine on
SSLCertificateFile      /path/to/signed_cert_and_intermediate_certs
SSLCertificateKeyFile   /path/to/private_key

Erstatte /path/to/signed_cert_and_intermediate_certs med stien til din SSL-certifikatfil, og /path/to/private_key med stien til din private nøglefil.

Aktiver HTTP/2

For at forbedre ydeevnen aktiverer vi HTTP/2, hvis det er tilgængeligt:

Protocols h2 http/1.1

Implementer HSTS

Vi tilføjer også en Strict-Transport-Security-header for at håndhæve sikre forbindelser:

Header always set Strict-Transport-Security "max-age=63072000"

Konfigurer SSL-protokoller og chiffere

Dernæst specificerer vi, hvilke SSL-protokoller og cifre der skal bruges for at sikre høj sikkerhed og kompatibilitet:

SSLProtocol                        all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite                  ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305
SSLHonorCipherOrder    off
SSLSessionTickets            off

Aktiver OCSP-hæftning

Endelig vil vi aktivere OCSP-hæftning, en funktion, der forbedrer ydeevnen af ​​SSL-forhandling og samtidig opretholder besøgendes privatliv:

SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"

Valider og anvend ændringerne

Når du er færdig, skal du gemme og afslutte filen. Det er vigtigt at validere din Apache-konfiguration for at sikre ingen syntaksfejl. Kør denne kommando for at kontrollere:

sudo apachectl configtest

Hvis der ikke er nogen problemer, skal du anvende ændringerne ved at genindlæse Apache:

sudo systemctl restart apache2

Konklusion

Igennem denne artikel dykkede vi ned i at sikre Apache med Let's Encrypt SSL-certifikater på Debian 10, 11 og 12. Vi fremhævede betydningen af ​​SSL-certifikater for at sikre sikker kommunikation mellem servere og klienter. Vi begyndte med at installere Certbot og undersøgte, hvordan man får et gratis SSL-certifikat fra Let's Encrypt. Vi diskuterede også konfiguration af Apache til at udnytte SSL-certifikatet, automatisering af fornyelsesprocessen gennem cron-job og styrkelse af sikkerheden via Apache-konfiguration.

Som en sidste anbefaling er det vigtigt at overvåge loggene og holde systemet opdateret regelmæssigt. Denne praksis vil sikre, at du er informeret om potentielle problemer, og at din server er forstærket mod de seneste sikkerhedssårbarheder.

Joshua James
Følg mig
Seneste indlæg af Joshua James (se alt)

Skriv en kommentar