Installation und Konfiguration von Caddy auf Ubuntu 20.04

Caddy ist ein Open-Source-Webserver, der sowohl statische als auch moderne Webanwendungen unterstützt und automatisch HTTPS für alle zugehörigen Domainnamen aktiviert. Entwickelt in Go bietet Caddy leicht verständliche Konfigurationsanweisungen und kann als Webserver, Reverse Proxy oder Load Balancer eingesetzt werden, um Webanwendungen auf Ihrem Server bereitzustellen.

Diese Anleitung führt Sie durch die Installation von Caddy auf Ubuntu 20.04 und zeigt, wie Sie Ihre Webanwendungen sicher bereitstellen.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass folgende Bedingungen erfüllt sind:

  • Ein Ubuntu-20.04-Server.
  • Ein A-Record für Ihre Domain, der auf die IP-Adresse des Servers verweist.
  • SSH-Zugang zum Server als Nicht-Root-Benutzer mit sudo-Rechten.

Caddy installieren

Caddy ist nicht in den Standard-APT-Repositories von Ubuntu 20.04 enthalten. Sie können es entweder aus den Quellpaketen installieren oder das aktuelle Repository auf Ihrem Server einbinden. Befolgen Sie diese Schritte, um das Repository hinzuzufügen und die Anwendung zu installieren:

Fügen Sie den Caddy GPG-Schlüssel zu Ihrem Server hinzu

curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg

Fügen Sie das Caddy-Repository zu den APT-Quellen hinzu

curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list

Aktualisieren Sie den Paketindex

Installieren Sie Caddy

Überprüfen Sie die installierte Caddy-Version

Ausgabe:

v2.9.1 h1:OEYiZ7DbCzAWVb6TNEkjRcSCRGHVoZsJinoDR/n9oaY=

Erlauben Sie HTTP-Verbindungen durch die Firewall

Starten Sie die Firewall neu, um die Änderungen anzuwenden

Öffnen Sie die IP-Adresse Ihres Servers im Browser, um zu prüfen, ob die Standardseite von Caddy angezeigt wird:

http://SERVER-IP

Caddy-Systemdienst verwalten

Aktivieren Sie Caddy für den automatischen Start beim Booten

sudo systemctl enable caddy

Starten Sie den Caddy-Webserver

sudo systemctl start caddy

Prüfen Sie den Status des Caddy-Systemdienstes

sudo systemctl status caddy

Ausgabe:

● caddy.service - Caddy
     Loaded: loaded (/lib/systemd/system/caddy.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2025-04-06 09:20:18 UTC; 4min 10s ago
       Docs: https://caddyserver.com/docs/
   Main PID: 3015 (caddy)
      Tasks: 9 (limit: 9415)
     Memory: 10.9M
     CGroup: /system.slice/caddy.service
             └─3015 /usr/bin/caddy run --environ --config /etc/caddy/Caddyfile

Caddy Virtual Host erstellen

Caddy speichert seine Konfigurationsdateien standardmäßig im Verzeichnis /etc/caddy und unterstützt Caddyfile-Konfigurationen von beliebigen Speicherorten. Gehen Sie wie folgt vor, um einen neuen virtuellen Host einzurichten, der Webanwendungsdateien aus dem Verzeichnis /var/www/example.com bereitstellt:

Erstellen Sie das Webanwendungsverzeichnis

sudo mkdir -p /var/www/example.com

Erstellen Sie eine neue HTML-Datei index.html

sudo nano /var/www/example.com/index.html

Fügen Sie folgenden Code in die Datei ein

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Greetings from centron!</title>
</head>
<body>
<br><br><br>
<h1 style="text-align: center;">Hello World! Greetings from centron</h1>
</body>
</html>

Wechseln Sie in das Caddy-Konfigurationsverzeichnis

Sichern Sie die Standardkonfiguration der Caddyfile

sudo mv Caddyfile Caddyfile.default

Erstellen Sie eine neue Caddyfile

Fügen Sie folgende Konfiguration in die Datei ein

example.com {
        tls admin@example.com

        root * /var/www/example.com

        file_server {
                index index.html
        }

        log {
                output file /var/log/caddy/example.log
                format console
        }
}

Diese Konfiguration erstellt einen virtuellen Host für Ihre Domain example.com. Folgendes bewirken die einzelnen Direktiven:

  • example.com: Definiert ein virtuelles Host-Profil für Ihre Domain oder IP-Adresse.
  • tls: Verknüpft eine E-Mail-Adresse mit Let’s Encrypt für die Beantragung von SSL-Zertifikaten.
  • root: Legt das Verzeichnis fest, in dem sich die Webanwendungsdateien befinden.
  • file_server: Aktiviert den Dateiserver zum Ausliefern der Webanwendungsdateien und setzt index.html als Standarddatei.
  • log: Konfiguriert die Protokollierung von Zugriffen und Fehlern in /var/log/caddy/example.log.

Validieren Sie die Caddy-Konfiguration

Ausgabe:

...........
2024/06/1 15:19:11.478 INFO    tls.cache.maintenance   started background certificate maintenance      {"cache": "0xc0000e5300"}
2024/06/1 15:19:11.478 INFO    tls.cache.maintenance   stopped background certificate maintenance      {"cache": "0xc0000e5300"}
Valid configuration

Laden Sie Caddy neu, um die Änderungen zu übernehmen

Den Caddy-Webserver absichern

Caddy aktiviert automatisch HTTPS, um alle Verbindungen mit SSL-Zertifikaten für virtuelle Hosts mit gültigen Domains zu sichern. Um den Caddy-Webserver vor unbefugten Änderungen zu schützen, schränken Sie den Zugriff auf die Caddyfile-Konfigurationen wie folgt ein:

Geben Sie dem Benutzer „caddy“ volle Rechte für das Verzeichnis /etc/caddy

sudo chown -R caddy:caddy /etc/caddy

Erteilen Sie dem Benutzer „caddy“ Lese- und Schreibrechte für die Caddyfile und sperren Sie den Zugriff für andere Benutzer

sudo chmod 660 /etc/caddy/Caddyfile

Überprüfen Sie die geänderten Berechtigungen im Verzeichnis /etc/caddy

Ausgabe:

total 8
-rw-rw---- 1 caddy caddy 168 Jun 2 15:20 Caddyfile
-rw-r--r-- 1 caddy caddy 769 Jun  2 12:07 Caddyfle.default

Firewall-Regeln einrichten

Caddy verwendet abhängig von der Caddyfile-Konfiguration die HTTP-Portnummer 80 und den HTTPS-Port 443, um Dateien auf dem Server auszuliefern. Führen Sie folgende Schritte aus, um den Zugriff auf beide Caddy-Ports durch die Firewall zu erlauben und Netzwerkverbindungen zum Webserver zu aktivieren:

Prüfen Sie den UFW-Status und stellen Sie sicher, dass er aktiv ist

Falls inaktiv, erlauben Sie den SSH-Port 22 und aktivieren Sie UFW

sudo ufw allow 22 && sudo ufw enable

Erlauben Sie eingehende Verbindungen zum HTTPS-Port 443

Laden Sie die Firewall neu, um die Änderungen zu übernehmen

Öffnen Sie Ihre Domain in einem Browser wie Chrome, um zu überprüfen, ob Caddy die Dateien Ihres virtuellen Hosts bereitstellt:

https://example.com

Wenn ein Verbindungsfehler auftritt, prüfen Sie die Caddy-Konfigurationsprotokolle, um die Ursache zu ermitteln und zu beheben.

Fazit

Sie haben den Caddy-Webserver erfolgreich auf Ihrem Ubuntu-20.04-Server installiert und ein Virtual-Host-Profil konfiguriert, um Webanwendungsdateien bereitzustellen.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

Passbolt auf Linux installieren & sicher konfigurieren

Security, Tutorial
Passbolt auf Linux-Distributionen installieren und einrichten Passbolt ist ein Open-Source-Passwortmanager, der die sichere Speicherung und Verwaltung von Passwörtern sowie sensiblen Daten mit Ende-zu-Ende-Verschlüsselung ermöglicht. Er funktioniert hauptsächlich als Browser-Erweiterung für…