Solved: Caddy und ACME OPNsense WebUI

Started by pleibling, May 13, 2024, 09:38:12 PM

Previous topic - Next topic
May 13, 2024, 09:38:12 PM Last Edit: May 14, 2024, 10:01:11 AM by pleibling
Hallo,

ich habe Caddy am laufen mit einigen Domains, was auch wunderbar funktioniert. Zuvor hatte ich all-inkl als DNS anbieter und konnte da den ACME Client für das OPNsense WebUI über DNS Challenge aktualisieren, was ebenfalls prima funktionierte.

Nun musste ich jedoch von All Inkl zu Netcup wechseln - die unterstützen leider keinen DNS Challenge, nun muss ich wieder zum HTTP Challenge zurück und habe da meine Probleme.

Ich hatte gehört, das Caddy nun auch ACME Clientd "durchlassen" kann und nicht selber behandelt.

Das wollte ich gerade mal testen - habe laut der Doku (https://docs.opnsense.org/manual/how-tos/caddy.html#redirect-acme-http-01-challenge) konfiguriert.

Hintergrund ist, das ich gerne von meiner OPNsene ein HTTPS Zertifkat nutzen kann. Dazu dachte ich mir, das ich dann gemäß der Anleitung oben einrichte, habe wie in der Anleitung verstanden und den Bildern angegeben eingerichtet - als IP verwende ich 192.168.177.62 (das ist das WAN Interface zu der Fritzbox mit einem Transitnetzwerk - da ich nicht direkt einwähle sondern ein Netz hinter der Fritzbox nutze). Vor Caddy hatte alles mit dem ACME Client geklappt, habe aber gerade erst gesehen, das die Zertifikate kurz vor dem ablaufen sind.

Könnt ihr einen Fehler sehen, oder stelle ich es mir zu schwer vor und es geht viel einfacher?

Wäre Klasse, wenn ihr mir weiterhelfen könntest.

Ich habe mal die Screenshots der Konfiguration von Caddy angehangen.

Danke für eure Unterstützung :).

Und hier noch die ACME Konfiguration.

May 13, 2024, 10:43:43 PM #2 Last Edit: May 14, 2024, 02:38:38 PM by Monviech
Ich verstehe das nicht so ganz. Wo läuft denn der ACME Client?

Das mit der ACME Redirection ist eine vorgefertigte Reverse Proxy Regel.

Für die IP Adresse die eingetragen wird, wird eine spezielle Regel erstellt, die so aussieht:

example.com {
   handle /.well-known/acme-challenge/* {
      reverse_proxy 192.168.177.62
   }
   handle {
      redir https://{host}{uri} 308
   }
}

Die Regel bedeutet folgendes:
- Caddy hört für example.com auf port 80
- wenn jemand /.well-known/acme-challenge/* aufruft wird er
- reverse proxied an die IP Adresse 192.168.177.62
- dort muss ein webserver auf http://example.com/.well-known/acme-challenge vorhanden sein, und der
ACME Client die Challenge anbieten.

Wenn diese Voraussetzung erfüllt ist dann funktioniert es auch. Gerade heute hab ich einen Exchange Server auf dem Win-ACME läuft hinter Caddy versorgt.
Hardware:
DEC740

Autsch, das ist der Fehler - ich habe zuhause DSL und nur eine IP, auf 443 ist natürlich Caddy mit allen Reverseproxy URLs. Gateway ist mein WebUI, das ist jedoch auf Port 4444. Zuvor hatte ich HAProxy laufen und der hatte wahrscheinlich dafür gesorgt, das das Wildcard das der ACME Client (natürlich auf der OPNsense) auch dem WebUI der OPNsense zugeordnet wurde

Ist es möglich, das Caddy ebenfalls ein Zertifikat (muss ja kein Wildcard sein, muss auch kein LE sein - kann jede andere CA sein) "besorgt" und zuordnet?

May 14, 2024, 08:17:11 AM #4 Last Edit: May 14, 2024, 08:23:06 AM by Monviech
Nein.

Aber man kann einfach das selbstsignierte Zertifikat der OPNsense benutzen, und dann ganz einfach die OPNsense WebUI reverse proxien. Gibt es auch in der Anleitung.

EDIT:

Aber ansonsten, der ACME Client der OPNsense sollte eigendlich weiter laufen können. In den Settings benutzt er Local HTTP Port 43580 und 43581 für die HTTP und TLS ALPN Challenge. Das ist unabhängig von Caddy.
Hardware:
DEC740

Danke @monviech, dann mache ich eher die Lösung mit dem Reverseproxy - dann kann ich den ACME Client komplett abschalten. Danke (mal wieder) für deine schnelle Hilfe.

Bitteschön, mache ich auch so. Nicht vergessen eine Access List zu verwenden falls nicht jeder die WebUI zugreifen soll.

Falls du Probleme mit Zertifikat hast, schalte einfach den TLS Skip Verify an, damit geht die OPNsense Webui auch, und da es lokal ist, ist es ziemlich egal.
Hardware:
DEC740

Danke für den Tipp, wo schalte ich den Verify aus?

In der Tat habe ich Probleme - bekomme immer HTTP ERROR 502, dabei habe ich das Zertfikat der OPNsense exportiert und dies dann in den Root CA erstellt mit dem Namen WebUI - dies habe ich dann bei in den Handler angeben ( Domain/Description gateway.leibling.de, Update Domain die interne IP, Upstream Port die 4444 gewählt, TLS aktiviert, WebUI Zertifikat welches ich erstellt habe ausgewählt und DNS Name dann OPNsense.localdomain ausgewählt - steht so im Zertifikat).

Womöglich ist das Problem behoben, wenn ich Skip verify aktiviere - oder hast du einen Link für die oben von dir angegeben Anleitung?

Danke dir (schon wieder).

https://docs.opnsense.org/manual/how-tos/caddy.html#reverse-proxy-the-opnsense-webui

Du musst das Zertifikat im Browser speichern, nicht das Zertifikat aus der OPNsense heraus exportieren.

Und ja, du kannst das ganze mit dem Zertifikat überspringen, indem du im Handler "advanced mode" aktivierst, und dort dann bei Trust die TLS Skip Verify option auswählst.
Hardware:
DEC740

Danke dir, nun klappt es - hatte es über das Export vom Browser gemacht - funktionierte dennoch nicht. Nun mit deaktivierten verify klappt es. Reicht ja aus mit 127.0.0.1, da kann man eh kein Verkehr mitschneiden aus dem LAN.

Danke dir viiiieeeeellllmals für deine Hilfe :).

You made my Day!