W obecnych czasach korzystanie z protokołu HTTPS jest kluczowe dla bezpieczeństwa każdej witryny internetowej. Jego brak może prowadzić do niebezpieczeństwa wycieku wrażliwych danych osobowych użytkowników. Aby temu zapobiec, wielu administratorów serwerów Linux zaczęło korzystać z narzędzi LetsEncrypt, które znacznie upraszczają proces generowania certyfikatów SSL. Mimo to, konfiguracja LetsEncrypt na serwerach Nginx lub Apache w systemie Linux może być skomplikowana. Na szczęście istnieje prostsze rozwiązanie – serwer WWW Caddy, który domyślnie obsługuje HTTPS. Jeśli masz dość problemów z certyfikatami SSL, Caddy może być idealnym rozwiązaniem dla Ciebie.
Instalacja Caddy
Proces instalacji serwera Caddy jest niemal identyczny niezależnie od systemu operacyjnego, na którym pracujesz. Łatwość instalacji wynika z decyzji programisty o użyciu skryptu Bash do pobierania i instalacji oprogramowania, co eliminuje potrzebę dodawania zewnętrznych repozytoriów lub korzystania z plików binarnych.
W tej instrukcji będziemy korzystać z Ubuntu Server, ale Caddy można z powodzeniem uruchomić również na większości innych dystrybucji Linux, w tym na systemach desktopowych. Na początek upewnij się, że masz zainstalowane narzędzie Curl. Jeśli go nie posiadasz, otwórz terminal, znajdź „curl” w menedżerze pakietów i zainstaluj je.
Sprawdź, czy Curl jest już zainstalowany, wpisując „curl” w terminalu. Jeśli pojawi się okno pomocy, oznacza to, że Curl jest dostępny na Twoim systemie Linux.
curl https://getcaddy.com | bash -s personal
Caddy jest darmowy do użytku osobistego, jednak w przypadku zastosowań komercyjnych należy użyć innego polecenia:
curl https://getcaddy.com | bash -s commercial
Wykonanie polecenia Curl uruchomi skrypt Bash, który automatycznie zainicjuje proces instalacji. Instalator Caddy pobierze plik binarny serwera WWW i umieści go w katalogu /usr/local/bin/. Po pomyślnej instalacji zobaczysz komunikat „Pomyślnie zainstalowano”.
Teraz musisz dostosować uprawnienia do pliku binarnego Caddy. Użyj polecenia poniżej w terminalu z uprawnieniami sudo:
sudo setcap cap_net_bind_service=+ep /usr/local/bin/caddy
Konfiguracja Caddy
W większości systemów można zalogować się bezpośrednio na konto roota, używając:
su
Jednak w przypadku serwera Ubuntu konto roota jest zablokowane dla większego bezpieczeństwa. Aby to obejść, uzyskaj powłokę roota za pomocą poniższego polecenia:
sudo -s
Gdy już masz uprawnienia administratora, utwórz katalogi potrzebne do prawidłowego działania serwera Caddy:
mkdir /etc/caddy mkdir /etc/ssl/caddy
Jeśli Twój serwer ma już katalog /var/www/, możesz pominąć ostatnie polecenie mkdir:
mkdir /var/www
Następnie stwórz nowy plik „Caddyfile” w katalogu /etc/caddy/:
touch /etc/caddy/Caddyfile
Wykorzystaj polecenie chmod, aby zaktualizować uprawnienia do podfolderu Caddy w /etc/ssl/:
chmod 0770 /etc/ssl/caddy
Na koniec zmień właściciela katalogu /var/www/:
chown www-data: /var/www
Plik systemd dla Caddy
Większość serwerów, w tym Ubuntu, korzysta z systemu init systemd. Ponieważ jednak Caddy jest instalowany za pomocą skryptu Bash, plik usługi nie jest automatycznie tworzony. Musimy go stworzyć ręcznie. Użyj polecenia dotykowego, aby utworzyć nowy, pusty plik usługi:
touch /lib/systemd/system/caddy.service
Otwórz nowy plik caddy.service i wklej do niego poniższy kod:
[Unit]
Description = Caddy HTTP/2 Web Server
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
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
[Install]
WantedBy = multi-user.target
To jest obszerny kod pliku caddy.service, więc upewnij się, że wszystko zostało poprawnie wklejone. Po zakończeniu zapisz zmiany, naciskając Ctrl + O, a następnie wyjdź z edytora, używając Ctrl + X.
systemctl enable caddy.service systemctl start caddy.service
Po skonfigurowaniu systemd, serwer powinien być gotowy do działania.
Konfiguracja domen
Jak każdy inny serwer WWW, także Caddy wymaga odpowiedniej konfiguracji przed uruchomieniem. Zacznij od utworzenia folderu dla swojej domeny:
Pamiętaj, aby zmienić „test-domain.org” na rzeczywistą nazwę swojej domeny.
mkdir -p /var/www/test-domain.org/
Następnie edytuj plik Caddyfile, który wcześniej stworzyłeś:
nano /etc/caddy/Caddyfile
Wklej poniższy kod, aby aktywować nową domenę:
test-domain.org {
root /var/www/test-domain.org
}
Na koniec uruchom ponownie usługę Caddy w systemd, aby zastosować zmiany. Po restarcie, Caddy będzie gotowy do użytku na Twoim serwerze.
systemctl restart caddy.service