Der Autor wählte den Free and Open Source Fund, um eine Spende im Rahmen des Programms Write for DOnations zu erhalten.
Caddy ist ein auf Einfachheit und Sicherheit ausgelegter Webserver, der mit einer Reihe von Funktionen ausgestattet ist, die für das Hosting von Websites nützlich sind. Beispielsweise kann er automatisch TLS-Zertifikate von Let’s Encrypt beziehen und verwalten, um HTTPS zu aktivieren, und er bietet Unterstützung für HTTP/2. HTTPS ist ein System zur Sicherung des Datenverkehrs zwischen Ihren Benutzern und Ihrem Server und entwickelte sich schnell zu einer grundlegenden Erwartung für jede Website, die in Produktion ausgeführt wird – ohne HTTPS warnen Chrome und Firefox, dass Ihre Website „Nicht sicher“ ist, wenn Benutzer versuchen, Anmeldeinformationen einzugeben.
Früher wurde als Methode zur Installation von Caddy empfohlen, vorgefertigte Binärdateien von der Caddy-Projekt-Website herunterzuladen. Änderungen in der Lizenzierungsweise von Caddy bedeuten jedoch, dass Sie diese vorgefertigten Binärdateien nicht mehr für kommerzielle Zwecke verwenden dürfen, es sei denn, Sie zahlen eine Lizenzgebühr, auch wenn Sie Caddy nur intern innerhalb eines Unternehmens verwenden. Glücklicherweise ist der Quellcode von Caddy immer noch vollständig Open-Source und Sie können Caddy selbst erstellen, um Lizenzprobleme zu vermeiden.
In diesem Tutorial erstellen Sie Caddy aus dem Quellcode und verwenden ihn zum Hosten einer mit HTTPS gesicherten Website. Dazu müssen Sie ihn kompilieren, mit einer Caddyfile
konfigurieren und Plugins installieren. Am Ende lernen Sie, wie Sie Ihre Installation aktualisieren, wenn eine neue Version verfügbar ist.
sammy
.your_domain
. Sie können einen Domänennamen unter Namecheap günstig erwerben oder einen kostenlosen von Freenom herunterladen,. oder einfach die Domänenregistrierngsstelle Ihrer Wahl verwenden.your-domain
, der auf die öffentliche IP-Adresse Ihres Servers verweist. Sie finden in dieser Einführung in DigitalOcean DNS Details dazu, wie Sie sie hinzufügen können.In diesem Schritt erstellen Sie den Caddy aus dem Quellcode mit der Möglichkeit, später Plugins hinzuzufügen, ohne den Quellcode von Caddy zu ändern.
Für die Zwecke dieses Tutorials werden Sie den Quellcode unter ~/caddy
speichern. Erstellen Sie das Verzeichnis durch Ausführen des folgenden Befehls:
- mkdir ~/caddy
Navigieren Sie dorthin:
- cd ~/caddy
Speichern Sie den Quellcode zur Ausführung und Anpassung von Caddy in einer Datei namens caddy.go
. Erstellen Sie diese mit dem folgenden Befehl:
- nano caddy.go
Fügen Sie die folgenden Zeilen hinzu:
package main
import (
"github.com/caddyserver/caddy/caddy/caddymain"
)
func main() {
// caddymain.EnableTelemetry = false
caddymain.Run()
}
Dieser Code importiert Caddy direkt von Github (mit Git) und startet ihn von der Eingangsfunktion main
. Wenn Sie die Telemetrie aktivieren möchten, entkommentieren Sie die Zeile caddymain.EnableTelemetry
und setzen den Wert auf true
. Wenn Sie fertig sind, speichern und schließen Sie die Datei.
Damit caddy.go
die importierten Abhängigkeiten verwenden kann, müssen Sie es als Modul initialisieren:
- go mod init caddy
Outputgo: creating new go.mod: module caddy
An diesem Punkt sind Sie bereit, die Stock-Version von Caddy aus dem obigen Quellcode zu erstellen, indem Sie Folgendes ausführen:
- go install
Es werden zahlreiche Ausgaben erscheinen, die detailliert aufführen, welche Bibliotheken von Go als Abhängigkeiten heruntergeladen werden, die zum Kompilieren notwendig sind. Die resultierende ausführbare Datei wird unter $GOPATH/bin
gespeichert, wie in den Voraussetzungen erklärt.
Führen Sie Caddy nach Abschluss aus:
- caddy
Sie werden eine Ausgabe ähnlich der folgenden sehen:
OutputActivating privacy features... done.
Serving HTTP on port 2015
http://:2015
WARNING: File descriptor limit 1024 is too low for production servers. At least 8192 is recommended. Fix with `ulimit -n 8192`.
Dies bedeutet, dass Caddy erfolgreich gestartet wurde und auf dem Port 2015
verfügbar ist. Sie können die Warnmeldung ignorieren, da diese Grenze in späteren Schritten ohne Ihr Zutun angepasst wird. Drücken Sie zum Beenden STRG + C
.
Sie haben Caddy nun erstellt und ausgeführt. Im nächsten Schritt installieren Sie Caddy als Dienst, damit er automatisch beim Booten startet, und passen dann seine Eigentums- und Berechtigungseinstellungen an, um die Sicherheit des Servers zu gewährleisten.
Nachdem Sie nun bestätigt haben, dass Sie Caddy erstellen und ausführen können, ist es an der Zeit, einen systemd-Dienst zu konfigurieren, damit Caddy automatisch beim Systemstart gestartet werden kann. Um mehr über systemd zu erfahren, besuchen Sie unser Tutorial Systemd-Grundlagen.
Verschieben Sie zunächst die Caddy-Binärdatei nach /usr/local/bin
, den Standardspeicherort für Binärdateien, die nicht vom Ubuntu-Paketmanager verwaltet werden und für den Systembetrieb nicht entscheidend sind:
- sudo mv $GOPATH/bin/caddy /usr/local/bin/
Übertragen Sie anschließend die Eigentümerschaft der Caddy-Binärdatei an den root user:
- sudo chown root:root /usr/local/bin/caddy
Dadurch wird verhindert, dass andere Konten die ausführbare Datei modifizieren. Aber selbst wenn der root user Eigentümer von Caddy ist, ist es ratsam, ihn nur mit anderen, Nicht-Root-Konten auszuführen, die auf dem System vorhanden sind. Dadurch wird sichergestellt, dass im Falle einer Kompromittierung von Caddy (oder eines anderen Programms) der Angreifer nicht in der Lage sein wird, die Binärdatei zu verändern oder Befehle als root auszuführen.
Legen Sie anschließend die Berechtigungen der Binärdatei auf 755
fest – dies gibt root volle Lese-/Schreib-/Ausführungsberechtigungen für die Datei, während andere Benutzer nur in der Lage sind, sie zu lesen und auszuführen:
- sudo chmod 755 /usr/local/bin/caddy
Da der Caddy-Prozess nicht als root ausgeführt wird, verhindert Linux, dass er an die Ports 80
und 443
(die Standardports für HTTP bzw. HTTPS) gebunden wird, da es sich hierbei um mit Berechtigungen versehene Operationen handelt. Um in Ihrer Domäne leicht zugänglich zu sein, muss Caddy abhängig vom Protokoll an einen dieser Ports gebunden werden. Andernfalls müssten Sie der Domain-URL in Ihrem Browser eine bestimmte Port-Nummer hinzufügen, um die Inhalte anzuzeigen, die er bereitstellen wird.
Damit Caddy an niedrige Ports gebunden werden kann, ohne als root ausgeführt zu werden, führen Sie den folgenden Befehl aus:
- sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy
Das Dienstprogramm setcap
legt die Dateifähigkeiten fest. In diesem Befehl weist es der Caddy-Binärdatei die Fähigkeit CAP_NET_BIND_SERVICE
zu, die es einer ausführbaren Datei ermöglicht, sich an einen niedrigeren Port als 1024 zu binden.
Sie haben nun die Einrichtung der Caddy-Binärdatei abgeschlossen und können mit dem Schreiben der Caddy-Konfiguration beginnen. Erstellen Sie ein Verzeichnis, in dem Sie die Konfigurationsdateien von Caddy speichern, indem Sie den folgenden Befehl ausführen:
- sudo mkdir /etc/caddy
Legen Sie dann die richtigen Benutzer- und Gruppenberechtigungen dafür fest:
- sudo chown -R root:www-data /etc/caddy
Die Einstellung des Benutzers als root und der Gruppe als www-data stellt sicher, dass Caddy Lese- und Schreibzugriff auf den Ordner hat (über die Gruppe www-data) und dass nur das Superuser-Konto die gleichen Rechte zum Lesen und Ändern hat. www-data ist der Standardbenutzer und die Standardgruppe für Webserver unter Ubuntu.
In einem späteren Schritt werden Sie die automatische TLS-Zertifikatsbereitstellung von Let’s Encrypt aktivieren. Erstellen Sie in Vorbereitung darauf ein Verzeichnis, in dem alle TLS-Zertifikate gespeichert werden, die Caddy erhalten wird, und geben ihm die gleichen Eigentumsregeln wie das Verzeichnis /etc/caddy
:
- sudo mkdir /etc/ssl/caddy
- sudo chown -R root:www-data /etc/ssl/caddy
Caddy muss Zertifikate in dieses Verzeichnis schreiben und aus diesem Verzeichnis lesen können, um Anfragen zu verschlüsseln. Aus diesem Grund sollten Sie die Berechtigungen für das Verzeichnis /etc/ssl/caddy
so ändern, dass es nur für root und www-data zugänglich ist:
- sudo chmod 0770 /etc/ssl/caddy
Erstellen Sie anschließend ein Verzeichnis, um die Dateien zu speichern, die Caddy hosten wird:
- sudo mkdir /var/www
Setzten Sie dann den Eigentümer und die Gruppe des Verzeichnisses auf www-data:
- sudo chown www-data:www-data /var/www
Caddy liest seine Konfiguration aus einer Datei namens Caddyfile
, die unter /etc/caddy
gespeichert ist. Erstellen Sie die Datei auf der Festplatte, indem Sie Folgendes ausführen:
- sudo touch /etc/caddy/Caddyfile
Um den Caddy-Dienst zu installieren, laden Sie die Unit-Datei systemd aus dem Caddy Github-Repository in /etc/systemd/system
herunter, indem Sie Folgendes ausführen:
- sudo sh -c 'curl https://raw.githubusercontent.com/caddyserver/caddy/master/dist/init/linux-systemd/caddy.service > /etc/systemd/system/caddy.service'
Ändern Sie die Berechtigungen der Dienstdatei, damit sie nur durch ihren Eigentümer root geändert werden kann:
- sudo chmod 644 /etc/systemd/system/caddy.service
Dann laden Sie systemd neu, um den Caddy-Dienst zu erkennen:
- sudo systemctl daemon-reload
Prüfen Sie, ob systemd den Caddy-Dienst erkannt hat, durch Ausführen von systemctl status
:
- sudo systemctl status caddy
Sie sehen einen Output, der so ähnlich wie der nachfolgende aussieht:
Output● caddy.service - Caddy HTTP/2 web server
Loaded: loaded (/etc/systemd/system/caddy.service; disabled; vendor preset: e
Active: inactive (dead)
Docs: https://caddyserver.com/docs
Wenn Sie die gleiche Ausgabe sehen, wurde der neue Dienst korrekt von systemd erkannt.
Als Teil der anfänglichen Server-Einrichtungsvoraussetzung haben Sie ufw
, die unkomplizierte Firewall, aktiviert und SSH-Verbindungen zugelassen. Damit Caddy HTTP- und HTTPS-Verkehr von Ihrem Server aus bereitstellen kann, müssen Sie diese in ufw
zulassen, indem Sie den folgenden Befehl ausführen:
- sudo ufw allow proto tcp from any to any port 80,443
Der Output sieht wie folgt aus:
OutputRule added
Rule added (v6)
Überprüfen Sie mit ufw status
, ob Ihre Änderungen funktioniert haben:
- sudo ufw status
Sie sehen die folgende Ausgabe:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80,443/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80,443/tcp (v6) ALLOW Anywhere (v6)
Ihre Installation von Caddy ist nun abgeschlossen, aber noch nicht konfiguriert, um etwas bereitzustellen. Im nächsten Schritt konfigurieren Sie Caddy, um Dateien aus dem Verzeichnis /var/www
bereitzustellen.
In diesem Abschnitt schreiben Sie die grundlegende Caddy-Konfiguration für die Bereitstellung von statischen Dateien von Ihrem Server aus.
Beginnen Sie mit der Erstellung einer grundlegenden HTML-Datei in /var/www
namens index.html
:
- sudo nano /var/www/index.html
Fügen Sie die folgenden Zeilen hinzu:
<!DOCTYPE html>
<html>
<head>
<title>Hello from Caddy!</title>
</head>
<body>
<h1 style="font-family: sans-serif">This page is being served via Caddy</h1>
</body>
</html>
Wenn sie in einem Webbrowser angezeigt wird, zeigt sie eine Kopfzeile mit dem Text This page is being served via Caddy. Speichern und schließen Sie die Datei.
Öffnen Sie die zuvor erstellte Konfigurationsdatei Caddyfile
für die Bearbeitung:
- sudo nano /etc/caddy/Caddyfile
Fügen Sie die folgenden Zeilen hinzu:
:80 {
root /var/www
gzip
}
Hierbei handelt es sich um eine grundlegende Caddy-Konfiguration, die besagt, dass der Port 80
Ihres Servers mit Dateien aus /var/www
bedient und mit gzip
komprimiert werden soll, um die Seitenladezeiten auf der Client-Seite zu reduzieren.
In den meisten Fällen können Sie die Konfigurationsanweisungen mit Caddy weiter anpassen. Beispielsweise können Sie die gzip
-Komprimierung auf HTML- und PHP-Dateien beschränken und die Komprimierungsstufe auf 6 setzen (1 ist die niedrigste und 9 die höchste Komprimierungsstufe), indem Sie die Anweisung mit geschweiften Klammern erweitern und Unteranweisungen darunter auflisten:
:80 {
root /var/www
gzip {
ext .html .htm .php
level 6
}
}
Wenn Sie fertig sind, speichern und schließen Sie die Datei.
Caddy verfügt über eine große Anzahl verschiedener Richtlinien für viele Anwendungsfälle. Beispielsweise könnte die Anweisung fastcgi
für das Aktivieren von PHP nützlich sein. Die Anweisung markdown
könnte verwendet werden, um Markdown-Dateien vor der Bereitstellung automatisch in HTML zu konvertieren, was für die Erstellung eines einfachen Blogs nützlich sein könnte.
Um zu testen, ob alles korrekt funktioniert, starten Sie den Caddy-Dienst:
- sudo systemctl start caddy
Führen Sie als Nächstes systemctl status
aus, um Informationen über den Status des Caddy-Dienstes zu erhalten:
- sudo systemctl status caddy
Sie sehen dann Folgendes:
Output● caddy.service - Caddy HTTP/2 web server
Loaded: loaded (/etc/systemd/system/caddy.service; disabled; vendor preset: enabled)
Active: active (running) since Thu 2020-03-12 11:17:49 UTC; 11s ago
Docs: https://caddyserver.com/docs
Main PID: 3893 (caddy)
Tasks: 7 (limit: 1152)
CGroup: /system.slice/caddy.service
└─3893 /usr/local/bin/caddy -log stdout -log-timestamps=false -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp
Mar 12 11:17:49 caddy-article-update systemd[1]: Started Caddy HTTP/2 web server.
Mar 12 11:17:49 caddy-article-update caddy[3893]: [INFO] Caddy version: v1.0.5
Mar 12 11:17:49 caddy-article-update caddy[3893]: Activating privacy features... done.
Mar 12 11:17:49 caddy-article-update caddy[3893]: Serving HTTP on port 80
Mar 12 11:17:49 caddy-article-update caddy[3893]: http://
Mar 12 11:17:49 caddy-article-update caddy[3893]: [INFO] Serving http://
Mar 12 11:17:49 caddy-article-update caddy[3893]: [INFO][cache:0xc00007a7d0] Started certificate maintenance routine
Mar 12 11:17:49 caddy-article-update caddy[3893]: [WARNING] Sending telemetry (attempt 1): Post "https://telemetry.caddyserver.com/v1/update/6a8159c4-3427-42
Mar 12 11:17:57 caddy-article-update caddy[3893]: [WARNING] Sending telemetry (attempt 2): Post "https://telemetry.caddyserver.com/v1/update/6a8159c4-3427-42
...
Sie können nun in einem Webbrowser zu der IP Ihres Servers browsen. Ihre Beispiel-Webseite zeigt an:
Sie haben Caddy nun konfiguriert, um statische Dateien von Ihrem Server aus bereitzustellen. Im nächsten Schritt erweitern Sie die Funktionalität von Caddy durch die Verwendung von Plugins.
Plugins bieten eine Möglichkeit, das Verhalten von Caddy zu ändern und zu erweitern. Sie bieten allgemein mehr Konfigurationsanweisungen, die Sie je nach Anwendungsfall verwenden können. In diesem Abschnitt fügen Sie Plugins hinzu und verwenden sie durch die Installation des Plugin minify
, das überschüssige Leerzeichen entfernt und den Code, der an den Client gesendet wird, aufräumt, wodurch der Platzbedarf und die Ladezeiten weiter reduziert werden.
Das GitHub-Repository des Plugins minify
ist hacdias/caddy-minify.
Navigieren Sie zum Verzeichnis mit dem Quellcode, den Sie in Schritt Eins erstellt haben:
- cd ~/caddy
Um Caddy ein Plugin hinzuzufügen, müssen Sie es in die Datei caddy.go
importieren, die Sie zum Erstellen von Caddy verwendet haben. Öffnen Sie caddy.go
zum Bearbeiten:
- nano caddy.go
Importieren Sie das Plugin minify
, indem Sie die hervorgehobene Zeile hinzufügen, wie hier beschrieben:
package main
import (
"github.com/caddyserver/caddy/caddy/caddymain"
_ "github.com/hacdias/caddy-minify"
)
func main() {
// caddymain.EnableTelemetry = false
caddymain.Run()
}
Speichern und schließen Sie die Datei.
Einige Plugins erfordern möglicherweise einige geringfügige Konfigurationsanpassungen, lesen Sie also unbedingt die Dokumentation des Plugins, das Sie installieren. Eine Liste beliebter Plugins finden Sie im linken Fenster der Caddy-Dokumentation unter Plugins.
Sie müssen Caddy bei jedem Hinzufügen eines neuen Plugins neu erstellen. Das liegt daran, dass Go eine kompilierte Programmiersprache ist, d. h. der Quellcode wird vor der Ausführung in Computercode umgewandelt. Ihre Änderung an der Importdeklaration hat den Quellcode verändert, wirkt sich aber erst nach der Kompilierung auf die Binärdatei aus.
Verwenden Sie den Befehl go install
, um Caddy zu kompilieren:
- go install
Verschieben Sie nach dem Abschluss die erzeugte Binärdatei nach /usr/local/bin
und richten Sie Berechtigungen für die Binärdatei ein, wie Sie es zuvor getan haben. Sie müssen diese Schritte bei jeder Neuerstellung von Caddy durchführen, um dessen Funktionalität und Sicherheit zu gewährleisten:
- sudo mv $GOPATH/bin/caddy /usr/local/bin/
- sudo chown root:root /usr/local/bin/caddy
- sudo chmod 755 /usr/local/bin/caddy
- sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy
Um das Plugin minify
zu verwenden, müssen Sie die Anweisung minify
zu Ihrer Caddyfile
hinzufügen. Öffnen Sie sie zum Bearbeiten:
- sudo nano /etc/caddy/Caddyfile
Aktivieren Sie das Plugin, indem Sie die folgende Zeile zum Konfigurationsblock hinzufügen:
:80 {
root /var/www
gzip
minify
}
Starten Sie nun Ihren Server mit systemctl
neu:
- sudo systemctl restart caddy
Caddy wird nun ausgeführt und wird alle bereitgestellten Daten, einschließlich der zuvor erstellten Datei index.html
, „minifizieren“. Sie können die „Minifizierung“ bei der Arbeit beobachten, indem Sie den Inhalt Ihrer Domäne mit curl
abrufen:
- curl http://your_domain
Sie werden die folgende Ausgabe sehen: Beachten Sie, dass alle unnötigen Leerzeichen entfernt wurden, was zeigt, dass das Plugin minify
funktioniert.
Output<!doctype html><title>Hello from Caddy!</title><h1 style=font-family:sans-serif>This page is being served via Caddy</h1>
In diesem Schritt haben Sie gelernt, wie Sie Caddy mit Plugins erweitern können. Als Nächstes aktivieren Sie HTTPS, indem Sie das Plugin tls.dns.digitalocean
installieren.
In diesem Abschnitt aktivieren Sie die automatische Bereitstellung und Erneuerung von Zertifikaten durch Let’s Encrypt, wobei TXT-DNS-Datensätze zur Verifizierung verwendet werden.
Um die Verwendung von TXT-DNS-Datensätzen zu verifizieren, installieren Sie mit der DigitalOcean-API namens tls.dns.digitalocean
ein Plugin für die Schnittstelle. Das Verfahren zur Installation dieses Plugins ist fast identisch mit der Installation des Plugins minify
im vorherigen Schritt. Öffnen Sie zunächst caddy.go
:
- nano caddy.go
Fügen Sie das Repository des Plugins zu imports hinzu:
package main
import (
"github.com/caddyserver/caddy/caddy/caddymain"
_ "github.com/hacdias/caddy-minify"
_ "github.com/caddyserver/dnsproviders/digitalocean"
)
func main() {
// caddymain.EnableTelemetry = false
caddymain.Run()
}
Kompilieren Sie es durch Ausführen von:
- go install
Stellen Sie sicher, dass Caddy über systemctl
angehalten wird, und beenden Sie dann die Installation des Plugins, indem Sie die neu erstellte Caddy-Binärdatei kopieren und noch einmal die Eigentümerschaft und die Berechtigungen festlegen:
- sudo systemctl stop caddy
- sudo mv $GOPATH/bin/caddy /usr/local/bin/
- sudo chown root:root /usr/local/bin/caddy
- sudo chmod 755 /usr/local/bin/caddy
- sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy
Konfigurieren Sie anschließend Caddy, um mit der API von DigitalOcean zum Festlegen von DNS-Einträgen zu arbeiten. Caddy muss auf dieses Token als Umgebungsvariable zugreifen, um den DNS von DigitalOcean zu konfigurieren, damit Sie die Unit-Datei systemd bearbeiten können:
- sudo nano /etc/systemd/system/caddy.service
Suchen Sie die Zeile, die mit Environment=
beginnt, im Abschnitt [Service]
. Diese Zeile definiert die Umgebungsvariablen, die an den Caddy-Prozess übergeben werden sollen. Fügen Sie am Ende dieser Zeile ein Leerzeichen ein, fügen Sie dann eine Variable DO_AUTH_TOKEN
hinzu, gefolgt von dem Token, das Sie gerade generiert haben:
[Service]
Restart=on-abnormal
; User and group the process will run as.
User=www-data
Group=www-data
; Letsencrypt-issued certificates will be written to this directory.
Environment=CADDYPATH=/etc/ssl/caddy DO_AUTH_TOKEN=your_token_here
Speichern und schließen Sie diese Datei und laden Sie dann den Daemon systemd wie zuvor neu, um sicherzustellen, dass die Konfiguration aktualisiert wird:
- sudo systemctl daemon-reload
Führen Sie systemctl status
aus, um zu überprüfen, ob Ihre Konfigurationsänderungen in Ordnung sind:
- sudo systemctl status caddy
Die Ausgabe sollte wie folgt aussehen:
Output● caddy.service - Caddy HTTP/2 web server
Loaded: loaded (/etc/systemd/system/caddy.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: https://caddyserver.com/docs
...
Sie müssen einige geringfügige Änderungen an Ihrer Caddyfile
vornehmen, also öffnen Sie diese zur Bearbeitung:
- sudo nano /etc/caddy/Caddyfile
Fügen Sie die hervorgehobenen Zeilen in die Caddyfile
ein. Achten Sie darauf, dass Sie dabei your_domain
durch Ihre Domäne ersetzen (statt nur Port :80
) und gzip
kommentieren:
your_domain {
root /var/www
#gzip
minify
tls {
dns digitalocean
}
}
Die Verwendung einer Domäne statt nur eines Ports für den Hostnamen führt dazu, dass Caddy Anfragen über HTTP bedient. Die Anweisung tls
konfiguriert das Verhalten von Caddy bei Verwendung von TLS
, und die Unteranweisung dns
gibt an, dass Caddy das DNS-01
-System anstelle des HTTP-01
verwenden soll.
Damit ist Ihre Website für die Bereitstellung bereit. Starten Sie Caddy mit systemctl
und aktivieren Sie es dann mit enable
, damit es beim Starten ausgeführt wird.
- sudo systemctl start caddy
- sudo systemctl enable caddy
Wenn Sie zu Ihrer Domäne browsen, werden Sie automatisch zu HTTPS umgeleitet, wobei dieselbe Meldung angezeigt wird.
Ihre Installation von Caddy ist nun abgeschlossen und gesichert und Sie können je nach Anwendungsfall weitere Anpassungen vornehmen.
Wenn Sie Caddy aktualisieren möchten, wenn eine neue Version verfügbar ist, müssen Sie die Datei go.mod
(im gleichen Verzeichnis gespeichert) aktualisieren, die wie folgt aussieht:
module caddy
go 1.14
require (
github.com/caddyserver/caddy v1.0.5
github.com/caddyserver/dnsproviders v0.4.0
github.com/hacdias/caddy-minify v1.0.2
)
Der hervorgehobene Bereich ist die von Ihnen verwendete Version von Caddy. Wenn eine neue Version auf Github veröffentlicht wird (siehe die Seite mit den Versions-Tags), können Sie die bestehende Version in go.mod
durch diese ersetzen und Caddy entsprechend der ersten beiden Schritte kompilieren. Sie können dasselbe für alle importierten Plugins tun.
Sie haben Caddy nun auf Ihrem Server installiert und konfiguriert, sodass statische Seiten auf Ihrer gewünschten Domäne bereitgestellt werden, die mit kostenlosen Let’s Encrypt TLS-Zertifikaten gesichert sind.
Ein guter nächster Schritt wäre, einen Weg für die Benachrichtigung zu finden, wenn neue Versionen von Caddy veröffentlicht werden. Sie können beispielsweise den Atom-Feed für Caddy-Veröffentlichungen oder den dedizierten Dienst dependencies.io verwenden.
Weitere Informationen zur Konfiguration von Caddy finden Sie in der Dokumentation von Caddy.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!