Jak zabezpečit Apache pomocí Let's Encrypt na Debianu 12, 11 nebo 10

Zabezpečení vašeho webového serveru Apache pomocí certifikátu Let's Encrypt je zásadní pro zabezpečení vašeho webu a dat. Tato příručka vás provede tímto procesem na Debian 12 Bookworm, Debian 11 Bullseye a Debian 10 Buster. Důraz je kladen na implementaci robustních bezpečnostních opatření při současném zjednodušení složitosti často spojené se správou serveru.

Klíčové výhody používání Let's Encrypt s Apache v Debianu:

  • Nákladově efektivní: Let's Encrypt nabízí bezplatné certifikáty SSL, díky nimž je zabezpečení na vysoké úrovni dostupné všem.
  • Automatické obnovy: Automatizační funkce Let's Encrypt zjednodušují získávání a obnovování certifikátů SSL a snižují riziko výpadků zabezpečení.
  • Zvýšená bezpečnost: SSL certifikáty od Let's Encrypt poskytují silné šifrování dat při přenosu, čímž zvyšují celkovou bezpečnost vašeho serveru Apache v Debianu.
  • Široká kompatibilita: Většina moderních webových prohlížečů rozpoznává certifikáty Let's Encrypt, což zajišťuje bezproblémový uživatelský zážitek.
  • Proaktivní bezpečnostní opatření: Díky pravidelným aktualizacím a přísným zásadám je Let's Encrypt spolehlivou linií obrany proti různým kybernetickým hrozbám.

Následující průvodce vás naučí, jak zabezpečit server Apache v Debianu pomocí Let's Encrypt, čímž zvýšíte bezpečnost a spolehlivost vašich webových služeb. Zůstaňte naladěni na podrobné pokyny k dosažení tohoto základního nastavení zabezpečení.

Nainstalujte Certbot pro Apache

Tato část se zaměří na instalaci Certbota pro Apache na systém Linux založený na Debianu. Certbot je výkonný nástroj, který zjednodušuje získávání a konfiguraci SSL certifikátů z Let's Encrypt. Funguje to ruku v ruce s Apache, což vám umožňuje povolit HTTPS na vašich serverech.

Aktualizujte úložiště balíčků Debian před instalací Certbotu pro Apache

Před instalací Certbotu je důležité zajistit, aby byly repozitáře balíčků a stávající balíčky na vašem systému Debian aktualizovány. Udržování aktualizovaného systému zajišťuje, že si nainstalujete nejnovější verzi Certbotu a závislostí. Chcete-li aktualizovat úložiště balíčků a upgradovat stávající balíčky, proveďte následující příkazy:

sudo apt update
sudo apt upgrade

Nainstalujte Certbot a Apache Plugin

Nyní, když je váš systém Debian aktuální, je dalším krokem instalace Certbota spolu s jeho zásuvným modulem Apache. Zásuvný modul Apache je nezbytný, protože umožňuje Certbotu komunikovat s Apache, automatizovat získávání a obnovování certifikátů a konfigurovat Apache tak, aby je používal. Spusťte následující příkaz a nainstalujte Certbot i plugin Apache:

sudo apt install certbot python3-certbot-apache

Nastavení Apache a Let's Encrypt Certificate

V této části vás provedeme konfigurací Apache a vygenerováním certifikátu Let's Encrypt SSL pro vaši doménu pomocí Certbota. Probereme také použití různých možností, které zlepšují zabezpečení konfigurace vašeho serveru.

Konfigurace Certbota a generování certifikátu SSL na Apache s Debianem

Po instalaci Certbota a jeho zásuvného modulu Apache je další akcí spuštění Certbota pro vygenerování certifikátu SSL pro vaši doménu. Příkaz obsahuje několik možností pro optimalizaci zabezpečení.

Zde je rozpis použitých možností:

  • --apache: Určuje, že používaný webový server je Apache.
  • --agree-tos: Označuje váš souhlas s podmínkami služby Let's Encrypt.
  • --redirect: Nastaví trvalé přesměrování 301 z HTTP na HTTPS a zajistí, že veškerý provoz je šifrován.
  • --hsts: Přidá hlavičku Strict-Transport-Security pro vynucení zabezpečených připojení.
  • --staple-ocsp: Umožňuje sešívání OCSP, čímž se zvyšuje výkon vyjednávání SSL při zachování soukromí uživatelů.
  • --email: Toto je e-mailová adresa, na kterou budete dostávat oznámení týkající se vašeho certifikátu SSL, jako jsou připomenutí obnovení a bezpečnostní upozornění.

Nahradit you@example.com s vaším skutečným e-mailem a yourdomain.com s názvem vaší domény. Proveďte následující příkaz:

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

Po úspěšném spuštění Certbot vygeneruje certifikát SSL pro vaši doménu, nakonfiguruje Apache, aby jej používal, a použije zadané možnosti zabezpečení. Váš server bude nyní zabezpečený a váš web bude přístupný přes HTTPS.

Alternativní metoda konfigurace Certbot s Apache

Pro ty, kteří dávají přednost řízenému a interaktivnímu přístupu, poskytuje Certbot alternativní metodu, která vás vyzve k výběru informací a konfigurace. Postup použití této metody:

Spusťte následující příkaz:

sudo certbot --apache

Certbot zahájí interaktivní relaci. Níže je uveden přehled výzev, se kterými se můžete setkat:

  • Zadejte e-mailovou adresu (používá se pro naléhavá upozornění na obnovení a zabezpečení): Zadejte svou e-mailovou adresu. Let's Encrypt to použije ke komunikaci o vašich certifikátech.
  • Odsouhlaste podmínky služby Let's Encrypt: Budete požádáni o souhlas s podmínkami služby. Zadejte A pro souhlas.
  • Sdílejte svůj e-mail s nadací Electronic Frontier Foundation a získejte aktuální informace o jejich práci: Pokud chcete podporovat EFF, zadejte Y pro ano. V opačném případě zadejte N pro ne.
  • Pro která jména chcete HTTPS aktivovat: Certbot zobrazí názvy domén, pro které může vydávat certifikáty. Zadejte čísla odpovídající vašim doménám nebo je nechte pro všechny prázdná.
  • Vyberte příslušnou akci: Budete mít možnost buď:
    • 1: Pokuste se znovu nainstalovat certifikát
    • 2: Obnovte a vyměňte certifikát (limit ~5 za 7 dní)
    • Vyberte možnost, která vyhovuje vašim potřebám.
  • Vyberte, zda chcete přesměrovat provoz HTTP na HTTPS: Budete dotázáni, zda chcete přesměrovat provoz HTTP na HTTPS. Toto je vhodné pro většinu webových stránek:
    • 1: Žádné přesměrování – Nedělejte žádné další změny v konfiguraci webového serveru.
    • 2: Přesměrování – Proveďte přesměrování všech požadavků na zabezpečený přístup HTTPS.
    • Pro lepší zabezpečení vyberte možnost 2.

Jakmile projdete všemi výzvami a proces je dokončen, vydá Certbot zprávu podobnou té, která je zmíněna, s uvedením umístění souborů certifikátu a dalších informací.

Automatizace obnovy certifikátu SSL pomocí Cron

V této části nastavíme proces automatického obnovení vašich certifikátů SSL pomocí Cron, vestavěného plánovače úloh v systémech založených na Linuxu. Let's Encrypt SSL certifikáty, které mají životnost 90 dní a je nezbytné je před vypršením platnosti obnovit, aby nedošlo k přerušení služeb. Certbot poskytuje příkaz pro obnovu certifikátů a tento úkol můžeme automatizovat pomocí Cronu.

Suchý běh obnovy certifikátu

Před automatizací procesu obnovení je zásadní zajistit, aby příkaz k obnovení fungoval podle očekávání. Můžeme to udělat provedením suchého běhu, který simuluje proces obnovy bez změny certifikátů. Spuštěním následujícího příkazu zahájíte běh nasucho:

sudo certbot renew --dry-run

Plánování automatické obnovy certifikátu

Pokud je suchý běh dokončen bez chyb, můžeme naplánovat automatické obnovení certifikátu. Použijeme Cron ke spuštění příkazu obnovení v určitou dobu každý den.

Nejprve otevřete soubor crontab v režimu úprav pomocí následujícího příkazu:

sudo crontab -e

Na konec souboru přidejte následující řádek, abyste naplánovali denní kontrolu obnovení na 2:30:

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

The --quiet Tato volba zajišťuje, že proces obnovy běží tiše na pozadí bez vytváření jakéhokoli výstupu, pokud nedojde k chybě.

Po přidání tohoto řádku soubor uložte a zavřete. Nyní jste nastavili proces automatického obnovení pro své certifikáty SSL. Cron bude denně kontrolovat, zda je třeba obnovit nějaké certifikáty, a podle potřeby je obnovovat. Tím je zajištěno, že váš server Apache vždy používá platné certifikáty SSL a udržuje bezpečné uživatelské připojení.

Vylepšete konfiguraci Apache SSL

V této části optimalizujeme výkon vašeho serveru Apache úpravou jeho konfigurace SSL. To zahrnuje nastavení SSL certifikátů, povolení HTTP/2, implementaci HTTP Strict Transport Security (HSTS) a konfiguraci SSL protokolů a šifer. Tato konfigurace vyžaduje moduly Apache mod_ssl, mod_socache_shmcb, mod_rewrite, a mod_headers.

Upravte konfigurační soubor Apache

Chcete-li začít, musíte získat přístup ke konfiguračnímu souboru pro vaši doménu v rámci Apache. Proveďte následující příkaz:

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

Tím se otevře konfigurační soubor pro vaši doménu v textovém editoru s názvem Nano. Jakmile jste v něm, proveďte následující úpravy v bloku VirtualHost.

Přesměrujte HTTP na HTTPS

Nejprve nastavíme pravidlo pro přesměrování veškerého HTTP provozu na HTTPS, čímž zajistíme, že všechna připojení k vašemu serveru jsou bezpečná. Toto pravidlo vylučuje požadavky na .well-known/acme-challenge/ adresář, který používá Certbot pro ověření domény během procesu vydávání certifikátu. Přidejte následující konfiguraci do <VirtualHost *:80> blok:

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

Povolit SSL a zadat certifikáty

Dále v rámci <VirtualHost *:443> blokovat, povolíme SSL a určíme cesty k vašemu certifikátu SSL a soukromému klíči:

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

Nahradit /path/to/signed_cert_and_intermediate_certs s cestou k souboru certifikátu SSL a /path/to/private_key s cestou k souboru vašeho soukromého klíče.

Povolit HTTP/2

Pro zlepšení výkonu povolíme HTTP/2, pokud je k dispozici:

Protocols h2 http/1.1

Implementujte HSTS

Přidáme také hlavičku Strict-Transport-Security pro vynucení zabezpečených připojení:

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

Nakonfigurujte protokoly SSL a šifry

Dále uvedeme, které protokoly SSL a šifry by se měly používat k zajištění vysoké bezpečnosti a kompatibility:

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

Povolit sešívání OCSP

Nakonec povolíme sešívání OCSP, což je funkce, která zlepšuje výkon vyjednávání SSL při zachování soukromí návštěvníků:

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

Ověřte a použijte změny

Až budete hotovi, uložte a ukončete soubor. Je důležité ověřit vaši konfiguraci Apache, abyste zajistili, že nebudou žádné syntaktické chyby. Spusťte tento příkaz a zkontrolujte:

sudo apachectl configtest

Pokud nejsou žádné problémy, použijte změny znovu načtením Apache:

sudo systemctl restart apache2

Závěr

V tomto článku jsme se ponořili do zabezpečení Apache pomocí Let's Encrypt SSL certifikátů na Debianu 10, 11 a 12. Zdůraznili jsme význam SSL certifikátů pro zajištění bezpečné komunikace mezi servery a klienty. Počínaje instalací Certbota jsme prozkoumali, jak získat bezplatný certifikát SSL od Let's Encrypt. Také jsme diskutovali o konfiguraci Apache pro využití certifikátu SSL, automatizaci procesu obnovy prostřednictvím úloh cron a posílení zabezpečení pomocí konfigurace Apache.

Jako poslední doporučení je nezbytné sledovat protokoly a pravidelně udržovat systém aktuální. Tyto postupy zajistí, že budete informováni o potenciálních problémech a že váš server bude chráněn proti nejnovějším chybám zabezpečení.

Joshua James
Následuj mě
Nejnovější příspěvky uživatele Joshua James (vidět vše)

Napsat komentář