Jak zabezpečit Apache s Let’s Encrypt na Debian 11

Úvod

V současném digitálním prostředí se ochrana webových serverů stala klíčovou nutností. Jedním z nejúčinnějších přístupů k dosažení tohoto cíle je implementace SSL/TLS certifikátů. Tyto certifikáty šifrují komunikaci mezi webovým serverem a prohlížečem, čímž brání neoprávněnému sledování a úpravám přenášených dat.

Let’s Encrypt je bezplatná certifikační autorita, která poskytuje SSL/TLS certifikáty. Prohlížeče je široce akceptují a představují rychlý a snadný způsob, jak zabezpečit webový server.

V tomto návodu si ukážeme, jak zabezpečit váš webový server Apache s využitím Let’s Encrypt na Debianu 11.

Instalace balíčků Apache a Certbot

Nejdříve je třeba nainstalovat potřebné balíčky, tedy Apache a Certbot:

sudo apt update
sudo apt install apache2 certbot

Konfigurace Apache

Po dokončení instalace otevřete konfigurační soubor Apache, konkrétně 000-default.conf, pomocí textového editoru:

sudo nano /etc/apache2/sites-available/000-default.conf

Na konec tohoto souboru vložte následující řádky:

ServerAdmin webmaster@example.com
ServerName example.com
DocumentRoot /var/www/html

Nezapomeňte nahradit example.com názvem vaší domény a webmaster@example.com e-mailovou adresou administrátora vašeho webu.

3.1 Konfigurace virtuálních hostitelů

V případě, že na vašem serveru hostujete více webových stránek, bude nezbytné vytvořit virtuální hostitele pro každou z nich. Virtuální hostitel představuje konfigurační soubor, který informuje Apache, jak má zpracovávat požadavky pro konkrétní doménu či subdoménu.

Pro každou doménu, kterou chcete zabezpečit, vytvořte nový soubor virtuálního hostitele v adresáři /etc/apache2/sites-available. Například pro doménu www.example.com by konfigurační soubor mohl vypadat takto:

sudo nano /etc/apache2/sites-available/www.example.com.conf

Do tohoto souboru vložte následující obsah:

<VirtualHost *:80>
 ServerName www.example.com
 ServerAlias example.com
 DocumentRoot /var/www/html/example.com
</VirtualHost>

Nezapomeňte nahradit www.example.com a /var/www/html/example.com názvem vaší domény a cestou k adresáři s obsahem webu.

3.2 Aktivace SSL modulu

Pro šifrování komunikace je v Apache nezbytný modul SSL. Aktivujte jej vložením následujícího řádku na začátek konfiguračního souboru Apache:

Include /etc/letsencrypt/options-ssl-apache.conf

Získání certifikátu Let’s Encrypt

Nyní můžete zažádat o certifikát Let’s Encrypt pomocí nástroje Certbot.

4.1 Získání certifikátu přes Certbot

Pro získání certifikátu pro vámi nakonfigurovanou doménu nebo subdoménu použijte následující příkaz:

sudo certbot --apache

Postupujte podle instrukcí na obrazovce a vyberte doménu, pro kterou chcete certifikát vygenerovat.

4.2 Automatické obnovování certifikátu

Certbot má funkci automatického obnovování certifikátů před jejich vypršením platnosti. Pro aktivaci této funkce proveďte následující příkaz:

sudo certbot renew --dry-run

Pokud se neobjeví žádné chyby, vytvořte crontab soubor pro automatické obnovování certifikátů:

sudo crontab -e

Na konec tohoto souboru přidejte následující řádek:

0 0,12 * * * certbot renew

Ověření certifikátu

Po úspěšném získání certifikátu restartujte Apache a ověřte, zda je certifikát správně nainstalován:

sudo systemctl restart apache2
sudo openssl s_client -showcerts -connect example.com:443

Měli byste vidět informace o vašem certifikátu, včetně jména domény, doby platnosti a vydavatele.

Závěr

Zabezpečení webového serveru pomocí SSL/TLS je klíčové pro ochranu dat uživatelů a zajištění jejich soukromí. Let’s Encrypt nabízí bezplatný a jednoduchý způsob, jak získat SSL/TLS certifikát pro váš webový server Apache na Debianu 11.

V tomto návodu jsme prošli následujícími kroky:

  • Instalace balíčků Apache a Certbot
  • Konfigurace Apache
  • Konfigurace virtuálních hostitelů
  • Získání certifikátu Let’s Encrypt
  • Automatické obnovování certifikátu
  • Ověření certifikátu

Díky dodržování těchto pokynů zajistíte, že váš webový server Apache bude zabezpečený a důvěryhodný.

Často kladené dotazy

1. Co je to SSL/TLS?

SSL/TLS je protokol pro zabezpečení komunikace mezi webovým serverem a prohlížečem pomocí šifrování.

2. Co je Let’s Encrypt?

Let’s Encrypt je bezplatná certifikační autorita poskytující SSL/TLS certifikáty.

3. Jak zjistím, zda má můj web nainstalovaný SSL/TLS certifikát?

V adresním řádku prohlížeče se podívejte, zda se vedle webové adresy zobrazuje ikona zámku.

4. Co dělat, pokud mám problémy s získáním certifikátu z Let’s Encrypt?

Ujistěte se, že doména, kterou se snažíte zabezpečit, je správně nakonfigurovaná v Apache a že webový server běží bez problémů.

5. Jak často je nutné obnovovat SSL/TLS certifikát?

SSL/TLS certifikáty mají obvykle platnost 90 dnů. Doporučujeme nastavit automatické obnovování certifikátů pomocí Certbotu.

6. Je možné zabezpečit více domén pomocí jediného certifikátu?

Ano, můžete použít certifikát typu SAN (Subject Alternative Name), který umožňuje zabezpečit více domén jediným certifikátem.

7. Co je virtuální hostitel?

Virtuální hostitel je konfigurační soubor, který informuje Apache o tom, jak zpracovávat požadavky pro konkrétní doménu nebo subdoménu.

8. Je nutné restartovat Apache po získání certifikátu?

Ano, po získání certifikátu je nezbytné Apache restartovat, aby se změny v konfiguraci projevily.

9. Jak mohu otestovat platnost SSL/TLS certifikátu?

Můžete využít nástroje pro testování SSL, jako je například SSL Labs Server Test, ke zjištění platnosti a zabezpečení vašeho SSL/TLS certifikátu.

10. Jak mohu předejít tomu, aby byl můj web označen jako „Nebezpečný“ v prohlížečích?

Ujistěte se, že váš SSL/TLS certifikát je platný, používáte silné šifrovací algoritmy a že váš web neobsahuje škodlivý obsah.