Εισαγωγή
Προαπαιτούμενα
Βήμα 1: Εγκαταστήστε την τελευταία σταθερή έκδοση του Caddy
Βήμα 2: Διαμόρφωση του Caddy
Βήμα 3: Τροποποιήστε τους κανόνες του τείχους προστασίας
Βήμα 4: Δημιουργήστε μια δοκιμαστική σελίδα για τον ιστότοπό σας
Εισαγωγή
Το Caddy είναι ένα αναδυόμενο πρόγραμμα διακομιστή ιστού με εγγενή υποστήριξη για HTTP/2 και αυτόματο HTTPS. Έχοντας κατά νου την ευκολία χρήσης και την ασφάλεια, το Caddy μπορεί να χρησιμοποιηθεί για την ταχεία ανάπτυξη ενός ιστότοπου με δυνατότητα HTTPS με ένα μόνο αρχείο διαμόρφωσης.
Προαπαιτούμενα
Βήμα 1: Εγκαταστήστε την τελευταία σταθερή έκδοση του Caddy
Σε λειτουργικό σύστημα Linux, Mac ή BSD, χρησιμοποιήστε την ακόλουθη εντολή για να εγκαταστήσετε την πιο πρόσφατη σταθερή έκδοση του Caddy για συγκεκριμένο σύστημα:
curl https://getcaddy.com | bash
Όταν σας ζητηθεί, εισαγάγετε τον κωδικό πρόσβασης sudo για να ολοκληρώσετε την εγκατάσταση.
Το δυαδικό αρχείο Caddy θα εγκατασταθεί στον /usr/local/binκατάλογο. Χρησιμοποιήστε την ακόλουθη εντολή για επιβεβαίωση:
which caddy
Η έξοδος θα πρέπει να είναι:
/usr/local/bin/caddy
Για λόγους ασφαλείας, μην εκτελείτε ΠΟΤΕ το δυαδικό αρχείο Caddy ως root. Για να δώσετε στον Caddy τη δυνατότητα να δεσμεύεται σε προνομιούχες θύρες (π.χ. 80, 443) ως χρήστης χωρίς root, πρέπει να εκτελέσετε την setcapεντολή ως εξής:
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy
Δημιουργήστε έναν αποκλειστικό χρήστη συστήματος: caddy και μια ομάδα με το ίδιο όνομα για το Caddy:
sudo useradd -r -d /var/www -M -s /sbin/nologin caddy
Σημείωση : Ο χρήστης που caddyδημιουργήθηκε εδώ μπορεί να χρησιμοποιηθεί μόνο για τη διαχείριση της υπηρεσίας Caddy και δεν μπορεί να χρησιμοποιηθεί για σύνδεση.
Δημιουργήστε τον αρχικό κατάλογο /var/wwwγια τον διακομιστή web Caddy και τον αρχικό κατάλογο /var/www/example.comγια τον ιστότοπό σας:
sudo mkdir -p /var/www/example.com
sudo chown -R caddy:caddy /var/www
Δημιουργήστε έναν κατάλογο για την αποθήκευση πιστοποιητικών SSL:
sudo mkdir /etc/ssl/caddy
sudo chown -R caddy:root /etc/ssl/caddy
sudo chmod 0770 /etc/ssl/caddy
Δημιουργήστε έναν αποκλειστικό κατάλογο για να αποθηκεύσετε το αρχείο διαμόρφωσης Caddy Caddyfile:
sudo mkdir /etc/caddy
sudo chown -R root:caddy /etc/caddy
Δημιουργήστε το αρχείο διαμόρφωσης Caddy με το όνομα 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
Σημείωση : Το Caddyfileαρχείο που δημιουργήθηκε παραπάνω είναι μόνο μια βασική ρύθμιση παραμέτρων για την εκτέλεση ενός στατικού ιστότοπου. Μπορείτε να μάθετε περισσότερα για το πώς να γράψετε ένα Caddyfile εδώ .
Για να διευκολύνετε τις λειτουργίες του Caddy, μπορείτε να ρυθμίσετε ένα systemdαρχείο μονάδας για το Caddy και στη συνέχεια να το χρησιμοποιήσετε systemdγια να διαχειριστείτε το Caddy.
Χρησιμοποιήστε το viπρόγραμμα επεξεργασίας για να δημιουργήσετε το systemdαρχείο μονάδας Caddy :
sudo vi /etc/systemd/system/caddy.service
Συμπληρώστε το αρχείο:
[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
Αποθήκευση και έξοδος:
:wq!
Ξεκινήστε την υπηρεσία Caddy και ξεκινήστε την αυτόματα κατά την εκκίνηση του συστήματος:
sudo systemctl daemon-reload
sudo systemctl start caddy.service
sudo systemctl enable caddy.service
Βήμα 3: Τροποποιήστε τους κανόνες του τείχους προστασίας
Για να επιτρέψετε στους επισκέπτες να έχουν πρόσβαση στον ιστότοπό σας Caddy, πρέπει να ανοίξετε τις θύρες 80 και 443:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Βήμα 4: Δημιουργήστε μια δοκιμαστική σελίδα για τον ιστότοπό σας
Χρησιμοποιήστε την ακόλουθη εντολή για να δημιουργήσετε ένα αρχείο με όνομα index.htmlστον αρχικό κατάλογο του ιστότοπού Caddy:
echo '<h1>Hello World!</h1>' | sudo tee /var/www/example.com/index.html
Επανεκκινήστε την υπηρεσία Caddy για να φορτώσετε νέο περιεχόμενο:
sudo systemctl restart caddy.service
Τέλος, τοποθετήστε το πρόγραμμα περιήγησής σας στο http://example.comή https://example.com. Θα πρέπει να δείτε το μήνυμα Hello World!όπως αναμενόταν.