Caddy – Ein kleiner Webserver mit automatischer SSL-Verschlüsselung

Wie wäre es aber, wenn die SSL-Verschlüsselung gleich im Webserver integriert ist und für jede Webseite gleich automatisch ein SSL-Zertfikat erzeugt und gleich implementiert? Genau das bietet Caddy – ein simpler, leichtgewichtiger Webserver der auch HTTP/2 unterstützt. Unter anderem bietet Caddy den Riesenvorteil, dass SSL bereits implementiert ist und für jede darin konfigurierte Domain automatisch ein SSL-Zertifikat von „Let’s Encrypt“ bezieht.

Caddy benötigt keine Installation und ist auf vielen Plattformen einsetzbar, zum Beispiel auf dem eigenen PC auf dem man seine Webseite entwickelt und diese gleich ohne großartige Installation und Konfiguration eines Webservers testen möchte.

Caddy beziehen und einrichten

Nachdem man sich im Caddy-Downloadbereich für die entsprechende Plattform entschieden hat und das Archiv heruntergeladen hat, kann es gleich losgehen.

Der Webserver benötigt keine Installation, alle nötigen Parameter können gleich in die Kommandozeile eingegeben werden oder in das sogenannte Caddyfile. Der Vorteil der Caddyfile ist, dass die Konfiguration in einer Datei ist und diese auch leicht gesichert und migriert werden kann.

Webserver starten

Nachdem man das Archiv entpackt hat, findet man gleich die ausführbare Binärdatei „caddy“.  Wenn man diese nun gleich in einem WebRoot-Verzeichnis einer Domain ausführt, sind alle statischen html-Dateien über http://localhost:2015 erreichbar.

$# ./caddy
Activating privacy features... done.
:2015

Standardmäßig öffnet caddy den Port 2015 und bindet es auf dem lokalen Hostsystem. Die Seite ist noch nicht über das Internet erreichbar, aber man kann zum Beispiel den HTML-Code betrachten.

Caddyfile

Will man einen vollwertigen Server starten und auch die Domain über das Internet erreichbar machen muss man etwas mehr tun.
Zum Beispiel wollen wir für die neue Subdomain test01.lamp-solutions.de über https:// verfügbar machen und damit nicht nur HTML, sondern auch
PHP-Code ausführen.

Es gibt nun zwei Möglichkeiten.

Caddy-Server eigenständig betreiben

Caddy kann kein PHP. Um aber PHP-Code auszuführen benötigt man zusätzlich ein Programm das für Caddy den entsprechenden Code ausführt. Zum Beispiel PHP5-FPM, ein Programm den wir unter anderem auf die von uns betreuten Server einsetzen.
Über die FastCGI-Schnittstelle, kann Caddy dann PHP interpretieren.

Auf diese Weise kommt man in den Genuss der Schnelligkeit die Caddy bietet.

Die Konfiguration, also das Caddyfile kann dann so aussehen:

test01.lamp-solutions.de {
    root /www/test01.lamp-solutions.de/htdocs
    fastcgi / 127.0.0.1:9050
}

Caddy-Server am bestehenden Webserver anbinden

Möchte
man stattdessen den bestehenden Webserver verwenden um PHP auszuführen,
zum Beispiel den Apache2 und Caddy soll dann nur die Auslieferung der
Webseite übernehmen, so wird dieser als Proxy eingerichtet. Es muss
sichergestellt werden, dass der Apache2 eben nur auf localhost, zum
Beispiel auf Port 8080 läuft.

Caddy übernimmt, dann alle öffentlichen Anfragen am Port 80 und 443.

test01.lamp-solutions.de {
    proxy / localhost:8080
}

Fazit

Caddy ist noch mit einem halben Jahr noch relativ frisch, bietet aber jetzt schon mal sehr viele Vorteile wie vorhin beschrieben. Vor allem mit dem etwa gleichaltrigen „Let’s Encypt“ Projekt bietet Caddy ein großartiges Paket, eine Webseite gleich verschlüsselt ins Netz zu stellen. Und neben der Schnelligkeit bietet Caddy durch seine Einfachheit und der Modularen Konfiguration auch eine große Flexibilität.

Related Posts

Leave a reply