Caddy Wildcard-Zertifikat und Subdomain

Started by observing0436, Today at 01:55:38 PM

Previous topic - Next topic
Opnsense-Version: 25.7.10

Hallo Zusammen,

ich benutze seit längerem Caddy als mein Reverse-Proxy. Unter anderem auch für nur intern erreichbare Ziele. Dafür verwende ich ein Wildcard-Zertifikat. Entsprechend habe ich auch eine Wildcard-Domain und Subdomains über die Opnsense GUI konfiguriert.

Allerdings entspricht das daraus resultierende JSON-File nicht dem Muster auf der Caddy Web Site (https://caddyserver.com/docs/caddyfile/patterns#wildcard-certificates)

Hier ein Beispiel:
Wildcard-Domain: https://*.example.com
Subdomains: foo.example.com und bar.example.com

Erwarteter Output (Auszug eventuell mit Syntax-Fehler!):
*.example.com {
tls /usr/local/etc/caddy/certificates/68359499ac11f.pem /usr/local/etc/caddy/certificates/68359499ac11f.key {
}

@foo host foo.example.com
handle @foo {
reverse_proxy 192.168.13.1
}

@bar host bar.example.com
handle @bar {
reverse_proxy 192.168.13.1
}

# Fallback for otherwise unhandled domains
handle {
abort
}
}

Tatsächlicher Output (Auszug):
*.example.com {
tls /usr/local/etc/caddy/certificates/68359499ac11f.pem /usr/local/etc/caddy/certificates/68359499ac11f.key {
}
}

foo.example.com {
handle {
reverse_proxy 192.168.13.1 {
}
}
}

bar.example.com {
handle {
reverse_proxy 192.168.13.1 {
}
}
}

Der tatsächliche Output macht für mich wenig Sinn, weil ich dann eh alles für jede Subdomain einzeln konfigurieren muss (z.B. Access).

Ist das eventuell ein Fehler oder beabsichtigt?

Viele Grüße
Mike

Du hast eine Domain mit einem Wildcard-Zertfikat, aber natürlich für jede Subdomain einen eigenen Eintrag mit einem eigenen Handler. Üblicherweise sind da ja jeweils völlig unterschiedliche Anwendungen auf unterschiedlichen Backend-Servern dahinter. Und auch möglicherweise unterschiedliche Access-Regeln.

Also: ist genau so gedacht.
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

Danke für die schnelle Antwort!

Das wäre bei der ersten verschachtelten Lösung auch immer noch der Fall. Das Beispiel war jetzt etwas unglücklich gewählt, weil ich 2x zum selben Upstream-Host gehe.

Man hätte die Flexibilität gewonnen, dass man Access-Einstellungen auch "global" für alle Subdomains durchführen könnte, wenn diese für alle Subdomains gleich sind.

Da bin ich am Anfang rein gefallen und hatte nur einen beschränkten Zugang für die Wildcard Domain eingerichtet und mich Monate später gewundert, dass diese nicht für die Sub-Domains gilt. Testen ist halt alles :-)

In der implementierten Lösung spart man sich nur die Zuweisung des WildCard-Zertifikates zu den Subdomains.

Vielleicht übersehe ich jetzt aber auch etwas.


Exakt. Man *kann* Wildcardzertifikate verwenden. Und damit verhindern, dass die FQDNs aller Anwendungen in einem öffentlichen Register [1] landen. Darum gehts.

[1] https://crt.sh/
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

Today at 03:24:46 PM #4 Last Edit: Today at 03:27:16 PM by Monviech (Cedrik)
Das generierte Caddyfile ist richtig, hier die PRs die es erklären:

https://github.com/opnsense/plugins/pull/4673

https://github.com/caddyserver/caddy/pull/6959
Hardware:
DEC740