Uvod
Preduvjeti
Korak 1: Instalirajte najnoviju stabilnu verziju Caddyja
Korak 2: Konfigurirajte Caddy
Korak 3: Izmijenite pravila vatrozida
Korak 4: Napravite probnu stranicu za svoju web-lokaciju
Uvod
Caddy je program web poslužitelja u nastajanju s izvornom podrškom za HTTP/2 i automatski HTTPS. Imajući na umu jednostavnost korištenja i sigurnost, Caddy se može koristiti za brzu implementaciju web-mjesta s omogućenim HTTPS-om s jednom konfiguracijskom datotekom.
Preduvjeti
Korak 1: Instalirajte najnoviju stabilnu verziju Caddyja
Na Linux, Mac ili BSD operativnom sustavu upotrijebite sljedeću naredbu da instalirate najnovije stabilno izdanje Caddyja specifično za sustav:
curl https://getcaddy.com | bash
Kada se to od vas zatraži, unesite svoju sudo lozinku da biste dovršili instalaciju.
Caddy binarni program će biti instaliran u /usr/local/bindirektorij. Za potvrdu koristite sljedeću naredbu:
which caddy
Izlaz bi trebao biti:
/usr/local/bin/caddy
Iz sigurnosnih razloga, NIKADA ne pokrećete Caddy binarni program kao root. Kako biste Caddyju dali mogućnost vezanja na privilegirane portove (npr. 80, 443) kao nekorijenski korisnik, trebate izvesti setcapnaredbu na sljedeći način:
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy
Napravite namjenskog korisnika sustava: caddy i grupu istog imena za Caddy:
sudo useradd -r -d /var/www -M -s /sbin/nologin caddy
Napomena : Ovdje caddykreirani korisnik može se koristiti samo za upravljanje Caddy uslugom i ne može se koristiti za prijavu.
Izradite početni imenik /var/wwwza Caddy web poslužitelj i kućni imenik /var/www/example.comza svoju web stranicu:
sudo mkdir -p /var/www/example.com
sudo chown -R caddy:caddy /var/www
Izradite direktorij za pohranu SSL certifikata:
sudo mkdir /etc/ssl/caddy
sudo chown -R caddy:root /etc/ssl/caddy
sudo chmod 0770 /etc/ssl/caddy
Napravite namjenski direktorij za pohranu konfiguracijske datoteke Caddyja Caddyfile:
sudo mkdir /etc/caddy
sudo chown -R root:caddy /etc/caddy
Kreirajte konfiguracijsku datoteku Caddy pod nazivom Caddyfile:
sudo touch /etc/caddy/Caddyfile
sudo chown caddy:caddy /etc/caddy/Caddyfile
sudo chmod 444 /etc/caddy/Caddyfile
cat <<EOF | sudo tee -a /etc/caddy/Caddyfile
example.com {
root /var/www/example.com
gzip
tls admin@example.com
}
EOF
Napomena : datoteka iznad stvorena je samo osnovna konfiguracija za pokretanje statički web stranicu. Više o tome kako napisati Caddyfile možete saznati ovdje .Caddyfile
Kako biste olakšali rad Caddyja, možete postaviti systemdjediničnu datoteku za Caddy i zatim je koristiti systemdza upravljanje Caddyjem.
Koristite viuređivač za stvaranje systemddatoteke Caddy jedinice:
sudo vi /etc/systemd/system/caddy.service
Popuni datoteku:
[Unit]
Description=Caddy HTTP/2 web server
Documentation=https://caddyserver.com/docs
After=network-online.target
Wants=network-online.target systemd-networkd-wait-online.service
[Service]
Restart=on-abnormal
; User and group the process will run as.
User=caddy
Group=caddy
; Letsencrypt-issued certificates will be written to this directory.
Environment=CADDYPATH=/etc/ssl/caddy
; Always set "-root" to something safe in case it gets forgotten in the Caddyfile.
ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp
ExecReload=/bin/kill -USR1 $MAINPID
; Use graceful shutdown with a reasonable timeout
KillMode=mixed
KillSignal=SIGQUIT
TimeoutStopSec=5s
; Limit the number of file descriptors; see `man systemd.exec` for more limit settings.
LimitNOFILE=1048576
; Unmodified caddy is not expected to use more than that.
LimitNPROC=512
; Use private /tmp and /var/tmp, which are discarded after caddy stops.
PrivateTmp=true
; Use a minimal /dev
PrivateDevices=true
; Hide /home, /root, and /run/user. Nobody will steal your SSH-keys.
ProtectHome=true
; Make /usr, /boot, /etc and possibly some more folders read-only.
ProtectSystem=full
; … except /etc/ssl/caddy, because we want Letsencrypt-certificates there.
; This merely retains r/w access rights, it does not add any new. Must still be writable on the host!
ReadWriteDirectories=/etc/ssl/caddy
; The following additional security directives only work with systemd v229 or later.
; They further retrict privileges that can be gained by caddy. Uncomment if you like.
; Note that you may have to add capabilities required by any plugins in use.
;CapabilityBoundingSet=CAP_NET_BIND_SERVICE
;AmbientCapabilities=CAP_NET_BIND_SERVICE
;NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
Spremi i zatvori:
:wq!
Pokrenite Caddy uslugu i neka se automatski pokreće pri pokretanju sustava:
sudo systemctl daemon-reload
sudo systemctl start caddy.service
sudo systemctl enable caddy.service
Korak 3: Izmijenite pravila vatrozida
Kako biste posjetiteljima omogućili pristup vašoj Caddy web stranici, morate otvoriti portove 80 i 443:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Korak 4: Napravite probnu stranicu za svoju web-lokaciju
Upotrijebite sljedeću naredbu za stvaranje datoteke nazvane index.htmlu početnom direktoriju vašeg Caddy web mjesta:
echo '<h1>Hello World!</h1>' | sudo tee /var/www/example.com/index.html
Ponovno pokrenite Caddy uslugu za učitavanje novog sadržaja:
sudo systemctl restart caddy.service
Na kraju, usmjerite svoj web preglednik na http://example.comili https://example.com. Poruku biste trebali vidjeti Hello World!kako je očekivano.