V dnešní digitální éře je zabezpečení webových stránek pomocí protokolu HTTPS naprosto nezbytné. Bez něj by citlivá data uživatelů mohla být snadno ohrožena. Mnoho správců linuxových serverů se proto obrací k nástroji Let’s Encrypt, který zjednodušuje proces získávání SSL certifikátů. Nicméně, i přes svou uživatelskou přívětivost, konfigurace Let’s Encrypt na serverech Nginx nebo Apache může být občas komplikovaná. Naštěstí existuje elegantnější řešení – webový server Caddy. Jeho velkou výhodou je, že HTTPS je aktivní ihned po instalaci. Pokud vás už unavuje složitá manipulace s SSL certifikáty, Caddy by mohl být ideální volbou.
Instalace Caddy
Instalace webového serveru Caddy je poměrně jednotná, bez ohledu na to, jaký operační systém používáte. Jednoduchost instalace je dána tím, že vývojáři zvolili stahovatelný Bash skript, což eliminuje nutnost používat repozitáře třetích stran nebo binární soubory.
V tomto návodu budeme jako příklad používat Ubuntu Server, ale webový server Caddy bude bez problémů fungovat na většině linuxových distribucí, a to i na desktopových verzích. Než začneme, ujistěte se, že máte na svém počítači nainstalovaný nástroj Curl. Pokud ne, otevřete terminál, vyhledejte jej ve správci balíčků a nainstalujte jej.
Poznámka: Chcete-li zjistit, zda již máte curl nainstalovaný, zadejte příkaz `curl` do terminálu. Pokud se objeví okno s nápovědou k programu, máte Curl k dispozici.
curl https://getcaddy.com | bash -s personal
Webový server Caddy je pro osobní použití zdarma, ale je nutné to explicitně uvést při instalaci. Pokud plánujete Caddy využívat v komerčním prostředí, použijte následující instalační příkaz:
curl https://getcaddy.com | bash -s commercial
Tento příkaz skrze Bash skript automaticky zahájí instalační proces. Instalační program stáhne binární soubor webového serveru a umístí ho do adresáře `/usr/local/bin/`. Po úspěšné instalaci se zobrazí hlášení „Successfully Installed“.
Nyní je nutné provést úpravu binárního souboru Caddy. Zadejte do terminálu následující příkaz, který vyžaduje oprávnění sudo:
sudo setcap cap_net_bind_service=+ep /usr/local/bin/caddy
Konfigurace Caddy
Caddy je nyní na serveru nainstalován. Dalším krokem je konfigurace adresářové struktury. Začněte tím, že se přepnete do kořenového terminálu. To vám umožní rychleji upravovat složky v systému souborů, protože nebudete muset zadávat `sudo` a heslo před každým příkazem.
Na většině systémů se do účtu root přihlásíte příkazem:
su
Na serveru Ubuntu je však z bezpečnostních důvodů účet root uzamčen. K získání root shellu můžete použít `sudo` s parametrem `-s`:
sudo -s
Po získání přístupu root vytvořte potřebné adresáře, aby Caddy správně fungoval:
mkdir /etc/caddy mkdir /etc/ssl/caddy
Poznámka: Pokud váš server již obsahuje adresář `/var/www/`, přeskočte následující příkaz mkdir.
mkdir /var/www
Následně vytvořte nový soubor `Caddyfile` v `/etc/caddy/`:
touch /etc/caddy/Caddyfile
Pomocí příkazu `chmod` upravte oprávnění pro podsložku Caddy v `/etc/ssl/`:
chmod 0770 /etc/ssl/caddy
Nakonec nastavte vlastnictví pro adresář `/var/www/`:
chown www-data: /var/www
Soubor Systemd pro Caddy
Většina serverů, zejména Ubuntu, intenzivně využívá systém systemd. Jelikož je ale webový server instalován pomocí Bash skriptu, soubor systemd zde není přítomen a je třeba jej vytvořit. Vytvořte prázdný soubor služby pomocí příkazu `touch`:
touch /lib/systemd/system/caddy.service
Otevřete soubor `caddy.service` a vložte do něj následující kód:
[Unit]
Description=Webový server Caddy HTTP/2
Documentation=https://caddyserver.com/docs
After=network-online.target
Wants=network-online.target
[Service]
Restart=on-failure
StartLimitInterval=86400
StartLimitBurst=5
User=www-data
Group=www-data
; Zde budou ukládány certifikáty Let’s Encrypt.
Environment=CADDYPATH=/etc/ssl/caddy
ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp
ExecReload=/bin/kill -USR1 $MAINPID
LimitNOFILE=1048576
LimitNPROC=64
PrivateTmp=true
PrivateDevices=true
ProtectHome=true
ProtectSystem=full
ReadWriteDirectories=/etc/ssl/caddy
; Následující bezpečnostní nastavení fungují pouze na systemd v229 a novějších verzích.
; Další omezení pro oprávnění Caddy. Pokud chcete, odkomentujte.
; Všimněte si, že možná budete muset přidat vlastnosti potřebné vašimi pluginy.
;CapabilityBoundingSet=CAP_NET_BIND_SERVICE
;AmbientCapabilities=CAP_NET_BIND_SERVICE
;NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
Soubor `caddy.service` je poměrně rozsáhlý, proto se ujistěte, že jste vložili celý kód. Po ověření uložte změny pomocí klávesové zkratky Ctrl + X a ukončete editor.
systemctl enable caddy.service systemctl start caddy.service
Po nastavení systemd by mělo být vše připraveno.
Nastavení domén
Stejně jako jiné webové servery, i Caddy vyžaduje před použitím určitou konfiguraci. Začněte vytvořením složky pro vaši doménu:
Poznámka: Nezapomeňte `test-domain.org` nahradit názvem vaší skutečné domény.
mkdir -p /var/www/test-domain.org/
Dále upravte soubor `Caddyfile`, který jsme vytvořili dříve:
nano /etc/caddy/Caddyfile
Chcete-li aktivovat novou doménu, vložte do souboru následující kód:
moje-domena.com {
root /var/www/test-domain.org
}
Pro uložení změn restartujte službu Caddy systemd. Po restartu je Caddy připraven k použití na vašem serveru.
systemctl restart caddy.service