I disse dage er HTTPS nøglen, når du hoster et websted. Uden det kunne dine brugere lække meget personlige data fra dit websted til verden. For at løse dette har mange Linux-webmastere taget i brug LetsEncrypt-værktøjerne, da de gør det meget nemt at generere et certifikat. Alligevel, for så let som LetsEncrpyt er, kan det stadig være lidt af en opgave at aktivere det på Nginx eller Apache på Linux. Heldigvis er der en bedre måde. Introduktion til Caddy-webserveren. Det er webserveren, der har HTTPS aktiveret som standard. Hvis du er træt af at bøvle med SSL-certifikater, kan Caddy være lige hvad du har brug for.
Indholdsfortegnelse
Installerer Caddy
Installation af Caddy-webserveren fungerer stort set det samme, uanset hvilket serveroperativsystem du bruger. Grunden til, at Caddy er så nem at installere, er, at udviklerens valg bruger et downloadbart Bash-script til at installere softwaren i stedet for at tilføje tredjeparts softwarelagre eller installere via binære filer.
I denne vejledning vil vi bruge Ubuntu Server, selvom kørsel af Caddy-webserveren også vil fungere fint på de fleste andre Linux OS’er, selv stationære. For at starte skal du sørge for at have Curl-appen på din Linux-pc. Hvis du ikke gør det, skal du åbne en terminalsøgning i din pakkeadministrator efter “krølle”, og installere den.
Bemærk: afgør om du allerede har curl ved at køre curl i terminalen. Hvis dialogboksen “hjælp” vises for programmet, har du Curl på din Linux-maskine.
curl https://getcaddy.com | bash -s personal
Caddy-webserveren er gratis at bruge til personlig brug, men du skal angive den. Planlægger du at bruge Caddy i en virksomhedsindstilling? Kør installationskommandoen med:
curl https://getcaddy.com | bash -s commercial
At køre Curl vil føre den gennem Bash og automatisk starte installationsprocessen. Caddy-installationsprogrammet vil tage tid at downloade webserverens binære og placere den i mappen /usr/local/bin/. Hvis installationen er vellykket, vil du se en meddelelse, der siger “Successfully Installed”.
På dette tidspunkt bliver du nødt til at ændre Caddy-binæren. Kør følgende kommando i terminalen med sudo-rettigheder.
sudo setcap cap_net_bind_service=+ep /usr/local/bin/caddy
Konfiguration af Caddy
Caddy er installeret på serveren. Det næste trin i processen er at konfigurere mappestrukturen. Start med at få en rodterminal. Hvis du gør dette, bliver det meget hurtigere at ændre mapper i filsystemet, da du ikke behøver at indtaste sudo for hver kommando efterfulgt af en adgangskode.
På de fleste systemer kan brugere logge direkte ind på root-kontoen med:
su
På Ubuntu-serveren er root-kontoen dog låst af sikkerhedsmæssige årsager. For at komme uden om dette, få en rodskal med sudo.
sudo -s
Nu hvor vi har root-adgang, skal du oprette de nødvendige mapper for at Caddy-serveren kan fungere korrekt.
mkdir /etc/caddy mkdir /etc/ssl/caddy
Bemærk: Hvis din server allerede har et /var/www/-bibliotek, skal du springe denne sidste mkdir-kommando over.
mkdir /var/www
Opret derefter en ny “Caddyfile” inde i /etc/caddy/.
touch /etc/caddy/Caddyfile
Brug chmod-kommandoen til at opdatere tilladelserne for Caddy-undermappen inde i /etc/ssl/.
chmod 0770 /etc/ssl/caddy
Til sidst skal du vælge mappen /var/www/:
chown www-data: /var/www
Caddy Systemd fil
De fleste servere, især Ubuntu-servere, gør stor brug af systemd init-systemet. Men da webserveren installeres via Bash-script, er der ikke en systemd-fil til stede. I stedet bliver vi nødt til at lave vores egen. Brug berøringskommandoen til at lave en ny, tom servicefil.
touch /lib/systemd/system/caddy.service
Åbn den nye caddy.service-fil og indsæt følgende kode i den:
[Unit]
Description=Caddy HTTP/2 webserver
Documentation=https://caddyserver.com/docs
After=netværk-online.mål
Wants=netværk-online.mål
[Service]
Genstart=ved fejl
Startgrænseinterval=86400
StartLimitBurst=5
Bruger=www-data
Gruppe=www-data
; Letsencrypt-udstedte certifikater vil blive skrevet til denne mappe.
Miljø=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=sand
PrivateDevices=sand
ProtectHome=sand
ProtectSystem=fuld
ReadWriteDirectories=/etc/ssl/caddy
; Følgende yderligere sikkerhedsdirektiver virker kun med systemd v229 eller nyere.
; De begrænser yderligere privilegier, der kan opnås af caddie. Fjern kommentarer, hvis du har lyst.
; Bemærk, at du muligvis skal tilføje funktioner, der kræves af alle plugins, der er i brug.
;CapabilityBoundingSet=CAP_NET_BIND_SERVICE
;AmbientCapabilities=CAP_NET_BIND_SERVICE
;NoNewPrivileges=sand
[Install]
WantedBy=multi-user.target
Der er en masse kode til caddy.service-filen, så gør dit bedste for at sikre, at alt er der. Når du er sikker, skal du gemme ændringerne ved at trykke på Ctrl + X tastaturkombinationen. Afslut editoren med Ctrl + X.
systemctl enable caddy.service systemctl start caddy.service
Efter opsætning af systemd, skulle alt være klar til at gå.
Opsætning af domæner
Caddy har, som enhver anden webserver, brug for en smule konfiguration, før den kan bruges. Start med at oprette en domænemappe:
Bemærk: Sørg for at omdøbe “test-domain.org” med dit domæne.
mkdir -p /var/www/test-domain.org/
Rediger derefter filen Caddyfile, vi oprettede tidligere.
nano /etc/caddy/Caddyfile
Indsæt følgende kode for at aktivere dit nye domæne:
mit-domæne.com {
root /var/www/test-domain.org
}
Genstart Caddy systemd-tjenesten for at gemme ændringerne. Når tjenesten er færdig med at genstarte, er Caddy klar til brug på din server.
systemctl restart caddy.service