У данашње време, HTTPS protokol je neophodan prilikom hostovanja veb stranica. Bez njega, korisnici mogu nesmotreno izložiti svoje lične informacije. Da bi se ovo rešilo, mnogi administratori Linux servera koriste alate poput Let’s Encrypt, koji olakšavaju proces generisanja sertifikata. Ipak, uprkos jednostavnosti Let’s Encrypt-a, podešavanje HTTPS-a na Nginx-u ili Apache-u i dalje može biti komplikovano. Srećom, postoji elegantnije rešenje. Predstavljamo Caddy veb server, koji po svojoj prirodi ima ugrađenu HTTPS podršku. Ako ste umorni od borbe sa SSL sertifikatima, Caddy bi mogao biti idealno rešenje za vas.
Instalacija Caddy servera
Proces instalacije Caddy veb servera je gotovo identičan na svim operativnim sistemima. Jednostavnost instalacije Caddy-a leži u odluci programera da koriste Bash skriptu za preuzimanje i instalaciju softvera, umesto dodavanja spoljnih repozitorijuma ili instaliranja putem binarnih datoteka.
U ovom vodiču koristimo Ubuntu server, ali Caddy bi trebalo da radi bez problema i na većini drugih Linux distribucija, pa čak i na desktop računarima. Pre nego što krenete, proverite da li imate instaliranu Curl aplikaciju. Ako je nemate, otvorite terminal, pretražite svoj paket menadžer za „curl“ i instalirajte ga.
Napomena: Proverite da li već imate instaliran curl tako što ćete ukucati `curl` u terminal. Ako vam se prikaže pomoć za program, Curl je već instaliran.
Da biste instalirali Caddy za ličnu upotrebu, pokrenite sledeću komandu:
curl https://getcaddy.com | bash -s personal
Caddy je besplatan za ličnu upotrebu, ali to morate naznačiti. Ako planirate da koristite Caddy u poslovnom okruženju, koristite ovu komandu za instalaciju:
curl https://getcaddy.com | bash -s commercial
Curl će proslediti komandu Bash-u i automatski pokrenuti instalaciju. Caddy-jev instalater će preuzeti binarnu datoteku veb servera i smestiti je u direktorijum `/usr/local/bin/`. Kada se instalacija uspešno završi, dobićete poruku „Successfully installed“.
Nakon instalacije, moraćete da modifikujete Caddy binarnu datoteku. Pokrenite sledeću komandu u terminalu sa sudo privilegijama:
sudo setcap cap_net_bind_service=+ep /usr/local/bin/caddy
Konfigurisanje Caddy servera
Caddy je sada instaliran na vašem serveru. Sledeći korak je konfigurisanje strukture direktorijuma. Prvo, pristupite root terminalu. Ovo će ubrzati proces modifikovanja fajlova i direktorijuma, jer nećete morati da koristite `sudo` za svaku komandu, uz unos lozinke.
Na većini sistema možete se direktno prijaviti na root nalog pomoću:
su
Na Ubuntu serveru, root nalog je zaključan iz bezbednosnih razloga. Da biste ovo zaobišli, otvorite root shell koristeći sudo:
sudo -s
Sada kada imate root pristup, kreirajte potrebne direktorijume kako bi Caddy server funkcionisao ispravno:
mkdir /etc/caddy mkdir /etc/ssl/caddy
Napomena: Ako vaš server već ima direktorijum `/var/www/`, preskočite sledeću `mkdir` komandu.
mkdir /var/www
Zatim kreirajte novi „Caddyfile“ unutar `/etc/caddy/`:
touch /etc/caddy/Caddyfile
Koristeći naredbu `chmod`, ažurirajte dozvole za Caddy poddirektorijum u okviru `/etc/ssl/`:
chmod 0770 /etc/ssl/caddy
Na kraju, promenite vlasništvo `/var/www/` direktorijuma:
chown www-data: /var/www
Caddy Systemd Datoteka
Većina servera, pogotovo Ubuntu, koristi `systemd` init sistem. Međutim, pošto se veb server instalira pomoću Bash skripte, `systemd` datoteka nije automatski generisana. Umesto toga, moraćemo da je kreiramo ručno. Napravite novu, praznu servisnu datoteku koristeći `touch` komandu:
touch /lib/systemd/system/caddy.service
Otvorite novu `caddy.service` datoteku i nalepite sledeći kod:
[Unit]
Description=Caddy HTTP/2 veb 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
; Sertifikati koje izdaje Let’s Encrypt biće upisani u ovaj direktorijum.
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
; Sledeće dodatne bezbednosne direktive rade samo sa systemd v229 ili novijim.
; One dodatno ograničavaju privilegije koje Caddy može steći. Uklonite komentare ako želite.
; Imajte na umu da ćete možda morati da dodate mogućnosti koje zahtevaju svi dodaci koji se koriste.
;CapabilityBoundingSet=CAP_NET_BIND_SERVICE
;AmbientCapabilities=CAP_NET_BIND_SERVICE
;NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
Datoteka `caddy.service` sadrži dosta koda, pa se uverite da je sve ispravno prekopirano. Kada budete sigurni, sačuvajte promene pritiskom na kombinaciju tastera Ctrl + X. Izađite iz editora takođe pomoću Ctrl + X.
systemctl enable caddy.service systemctl start caddy.service
Nakon konfigurisanja `systemd`-a, sve bi trebalo da bude spremno za rad.
Podešavanje domena
Caddy-ju, kao i svakom drugom veb serveru, potrebno je malo konfiguracije pre upotrebe. Počnite kreiranjem direktorijuma za vaš domen:
Napomena: Obavezno promenite „test-domain.org“ sa imenom vašeg domena.
mkdir -p /var/www/test-domain.org/
Zatim, uredite `Caddyfile` datoteku koju smo ranije kreirali:
nano /etc/caddy/Caddyfile
Nalepite sledeći kod da biste aktivirali vaš novi domen:
moj-domen.com {
root /var/www/test-domain.org
}
Ponovo pokrenite Caddy `systemd` servis da biste sačuvali izmene. Kada se servis ponovo pokrene, Caddy je spreman za korišćenje na vašem serveru.
systemctl restart caddy.service