RRset Konflikt (CAA + CNAME) bei HAProxy mit LE Wildcard von deSEC / dedyn.io

Started by Anderer, October 01, 2025, 10:20:11 PM

Previous topic - Next topic
Guten Abend zusammen,

für Nextcloud AIO wollte ich HAProxy als Reverse Proxy mit Wildcard-Zertifikat von Let's Encrypt und "SUBDOMAIN.dedyn.io" von deSEC installieren. Vorgehen analog Tutorial mit Adaption an aktuelle Felder und Einstellungen:
https://forum.opnsense.org/index.php?topic=23339.0

A) Plugin-Installation
  • OPNsense aktuell mit OpenSSL
  • os-acme-client, os-ddclient, os-haproxy sind installiert
B) DynDNS configuration
  • Account in desec.io angelegt
  • SUBDOMAIN.dedyn.io angelegt
  • Token angelegt
  • TOKEN
  • CAA record mit 0, issuewild, "letsencrypt.org", 3600
  • Beim Anlegen des CNAME gibt es folgenden Fehler:
    RRset with conflicting type present: database (CAA, NS). (No other RRsets are allowed alongside CNAME.)
    In der Doku steht dazu:
    A CNAME record is not allowed when other records exist at the same subname. This is a limitation of the DNS specification.
    https://desec.readthedocs.io/en/latest/dns/rrsets.html#unsupported-types
  • Dienste > Dynamisches DNS > Einstellungen > Allgemeine Einstellungen > Aktiviert, Intervall: 300, Backend: nativ
  • Dienste > Dynamisches DNS > Einstellungen > Konten >
     - Dienst: desec-v4 bzw. Custom
    - Protokoll: entfällt bzw. DynDNS 2
     - Server: entfällt bzw. update.dedyn.io
     - Benutername: SUBDOMAIN.dedyn.io
     - Passwort: TOKEN
     - Wildcard: Nein
     - Hostname: SUBDOMAIN.dedyn.io
     - IP-Prüfmethode: Schnittstelle [IPv4]
     - Zu überwachende Schnittstelle: WAN
     - IP-Prüfzeitüberschretung: 10
     - SSL erzwingen: Ja
  • Schnittstellen > Diagnose > Ping > Hostname oder IP: SUBDOMAIN.dedyn.io, Adressfamilie: IPv4, Quelladresse: LEER, Paketgröße: LEER, Nicht fragmentieren: Nein
        => Verlust: 100%, Fehler: sendto: Host is down

Ich habe dann zunächst lange gesucht und dann versucht, HAProxy zu konfigurieren, aber es blieb - vermutlich - bei diesem Fehler.

  • Könnte ich bitte einen Hinweis bekommen, was ist statt CAA + CNAME bei deSEC konfigurieren muss oder nachlesen kann, wenn CNAME nur alleine eingegeben werden darf - oder 
  • könnte ich evtl. jemanden beauftragen, meine Einstellungen zu prüfen und korrigieren, damit ich Nextcloud installieren kann?

Nachfolgend noch meine Konfiguration (anonymisiert), Protokoll und Topologie.

Dankeschön & herzliche Grüße,

Rico


Dienste: HAProxy: Konfigurationsexport

[pre]#
# Automatically generated configuration.
# Do not edit this file manually.
#
global
    uid                         80
    gid                         80
    chroot                      /var/haproxy
    daemon
    stats                       socket /var/run/haproxy.socket group proxy mode 775 level admin
    nbthread                    6
    hard-stop-after             60s
    no strict-limits
    maxconn                     10000
    ocsp-update.mindelay 300
    ocsp-update.maxdelay 3600
    httpclient.resolvers.prefer   ipv4
    tune.ssl.default-dh-param   4096
    spread-checks               2
    tune.bufsize                16384
    tune.lua.maxmem             0
    log                         /var/run/log local0 info
    lua-prepend-path            /tmp/haproxy/lua/?.lua
defaults
    log     global
    option redispatch -1
    maxconn 5000
    timeout client 30s
    timeout connect 30s
    timeout server 30s
    retries 3
    default-server init-addr last,libc
    default-server maxconn 50000
# autogenerated entries for ACLs
# autogenerated entries for config in backends/frontends
# autogenerated entries for stats
# Frontend: 0_SNI_frontend (Listening on 0.0.0.0:80, 0.0.0.0:443)
frontend 0_SNI_frontend
    bind 0.0.0.0:443 name 0.0.0.0:443
    bind 0.0.0.0:80 name 0.0.0.0:80
    mode tcp
    default_backend SSL_backend
    # logging options
# Frontend: 1_HTTP_frontend (Listening on 127.4.4.3:80)
frontend 1_HTTP_frontend
    bind 127.4.4.3:80 name 127.4.4.3:80 accept-proxy
    mode http
    option http-keep-alive
    default_backend Fallback_Backend
    # logging options
    # ACL: NoSSL_condition
    acl acl_74z5hhgd42d038.47994567 ssl_fc
    # ACTION: HTTPtoHTTPS_rule
    http-request redirect scheme https code 301 if !acl_74z5hhgd42d038.47994567
# Frontend: 1_HTTPS_frontend (Listening on 127.4.4.3:443)
frontend 1_HTTPS_frontend
    http-response set-header Strict-Transport-Security "max-age=6307200; includeSubDomains; preload"
    bind 192.168.50.1:443 name 192.168.50.1:443 accept-proxy ssl curves secp384r1  ssl-min-ver TLSv1.3 ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256 alpn h2,http/1.1 crt-list /tmp/haproxy/ssl/74z5hhgd42d038.47994567.certlist
    mode http
    option http-keep-alive
    default_backend Fallback_Backend
    # logging options
    # ACL: PUBLIC_SUBDOMAINS_condition
    acl acl_74z5hhgd42d038.47994567 hdr_reg(host) -i .*\.SUBDOMAIN\.dedyn\.io
    # ACTION: PUBLIC_SUBDOMAINS_rule
    use_backend %[req.hdr(host),lower,map_dom(/tmp/haproxy/mapfiles/4z5hhgd42d038.47994567.txt)] if acl_74z5hhgd42d038.47994567.53560960
# Backend: SSL_backend (Backend für SSL Offloading)
backend SSL_backend
    # health checking is DISABLED
    mode tcp
    balance source
    # stickiness
    stick-table type ip size 50k expire 30m 
    stick on src
    server SSL_server 127.4.4.3:443 send-proxy-v2 check-send-proxy
# Backend: Nextcloud_Backend (Backend für Nextcloud Service)
backend Nextcloud_Backend
    # health checking is DISABLED
    mode http
    balance source
    # stickiness
    stick-table type ip size 50k expire 30m 
    stick on src
    http-reuse safe
    server Nextcloud_Server 192.168.50.48:8080
# Backend: Fallback_Backend (Fallback Backend, falls Subdomain nicht vorhanden ist)
backend Fallback_Backend
    # health checking is DISABLED
    mode http
    balance source
    # stickiness
    stick-table type ip size 50k expire 30m 
    stick on src
    http-reuse safe
    server Fallback_Server 127.4.4.3:80
# Backend: UgreenNAS_Backend (Backend für UGREEN DXP480T Plus)
backend UgreenNAS_Backend
    # health checking is DISABLED
    mode http
    balance source
    # stickiness
    stick-table type ip size 50k expire 30m 
    stick on src
    http-reuse safe
    server UgreenNAS_Server 192.168.50.48:9443 ssl alpn h2,http/1.1 verify none
# Backend: OPNsense_Backend (Backend für OPNsense Mini-PC)
backend OPNsense_Backend
    # health checking is DISABLED
    mode http
    balance source
    # stickiness
    stick-table type ip size 50k expire 30m 
    stick on src
    http-reuse safe
    server OPNsense_Server 192.168.50.1:55443 ssl alpn h2,http/1.1 verify none
# Backend: AsusRouter_Backend (Backend für ASUS GT-BE98)
backend AsusRouter_Backend
    # health checking is DISABLED
    mode http
    balance source
    # stickiness
    stick-table type ip size 50k expire 30m 
    stick on src
    http-reuse safe
    server AsusRouter_Server 192.168.50.2:8398 ssl alpn h2,http/1.1 verify none
# statistics are DISABLED[/pre]





Dienste: HAProxy: Protokolldatei
=> hat immer wieder den gleichen Eintrag mit unterschiedlichen "from" Ports - sonst alles gleich.
2025-10-01T22:04:52
Informational
haproxy
Connect from 127.4.4.3:35006 to 127.4.4.3:443 (0_SNI_frontend/TCP)


Topologie:

WAN / Internet                        Telekom
     |
     |      VDSL
     |
   .-+-------------.
   |   FritzBox    |                   172.168.178.1      Modem
   '-+-------------'
     |
     |     WiFi-5
     |
   .-+-------------.
   | FritzRepeater |                   172.168.178.17     Access-Point
   '-+-------------'
     |
     |     1G LAN
     |
   .-+-------------.                .- 172.168.178.5      Exposed Host
   |   OPNsense    |                |
   '-+-------------'                '- 172.168.50.1/24    FW, DHCP-Server, später: VPN, Reverse Proxy
     |
     |   2.5G LAN
     |
   .-+-----+-------.
   | ASUS GT-BE98  |                   172.168.50.2       Access-Point, keine FW, kein DHCP-Server, kein VPN
   '-++++----------'
     ||||
     |||| 10G LAN
     ||||           .---------------.
     |||+-----------+ DXP-480T NAS  |  172.168.50.48      Netzlaufwerke, Nextcloud, Home Assistant etc.
     |||            '---------------'
     |||  10G LAN
     |||            .---------------.
     ||+------------+   Notebook    |  172.168.50.4       Windows 11
     ||             '---------------'
     ||  2.5G LAN
     ||             .---------------.
     |+-------------+    Clients    |  172.168.50.x       Mini PC, Notebook, NAS
     |              '---------------'
     |     WiFi-7
     |              .---------------.
     +--------------+    Clients    |  172.168.50.x       Tablet, Notebook, Smartphones, IoT (später: VLAN)
                    '---------------'



OPNsense 25.7.3_7-amd64 FreeBSD 14.3-RELEASE-p2 OpenSSL 3.0.17
FW-Mini PC, i3-1315U, 16GB DDR5-RAM, 256GB NVMe-SSD, 6x 2.5GbE i226-V LAN
FritzBox 5690 > FritzRepeater 1750E > OPNsense > ASUS GT-BE98 > Clients
192.168.178.1 > 192.168.178.17 > 192.168.178.5 | 192.168.50.1 > 192.168.50.2 > 192.168.50.x