Https ohne PORT 80 (mit deSEC?) möglich?

  • Hallo liebe Community.

    Folgende Situation: Ich habe einen Server, auf dem eine API läuft und ich möchte die Kommunikation gerne über SSL verschlüsseln.

    Die API ist nicht über Port 80 oder 443 zu erreichen. Im Grunde würde ich gerne die Ports 80 und 443 auch gar nicht nutzen (verschließen). Wenn man SSL über Certbot einrichtet, ist es aber erstmal (und auf Dauer) notwendig Ports 80 und 443 zu öffnen. Das habe ich jetzt auch testweise alles gemacht und es funktioniert ja auch soweit gut. Nun habe ich von "DNS-01 challenge" gehört, wonach man den TXT Record nutzen kann und dann die Validierung nicht mehr auf dem Server selber vornimmt, ergo 80 und 443 schließen kann.

    Leider weisen anderer Forumseinträge darauf hin, dass Netcup diesbezüglich nicht geeignet sein soll. Alternativ kann man aber wohl auch deSEC nutzen (Was noch weitere Vorteilen wie DNSSEC bringt).

    (Siehe auch: https://forum.netcup.de/netcup-anwendu…das-mit-dnssec/)

    Dort habe ich mich auch angemeldet. Aber ehrlich gesagt verstehe ich nicht immer alles so perfekt und ich will nichts kaputt machen. Vielleicht kennt sich ja jemand besser aus und weiß Rat.

    Was wäre ein vernünftiges Vorgehen, wenn man die Kommunikation verschlüsseln will und wie macht man das am besten mit z.B. deSEC oder alternativ Cloudflare.

    Kann ich mit meiner dem Server zugewiesene Domain herumspielen? Oder kann man da was (dumm gefragt) kaputt machen?

    Wie ist das mit der Erneuerung der Zertifikate, passiert das automatisch?

    Oder meint ihr, man sollte die Finger davon lassen, wenn man noch nicht ganz so firm mit den Vorgängen ist?

    Jeder Tipp ist willkommen.

  • Das geht und du kannst das auch mischen, also die DNS-Verwaltung deiner Domain bis auf den Letsencrypt Teil bei Netcup lassen und nur die Zertifikatausstellung über deSEC machen. Dazu legst du einen Namen bei deSEC an, wo der TXT Record für die Verifizierung landet. Auf diesen verweist du mit einem CNAME für _acme-challenge.<YOUR_DOMAIN>. Dann kannst du einen ACME Client für deSEC verwenden, um die Verifizierung durchzuführen und brauchst auf deinem Server keine Credentials für die Netcup DNS API zu speichern. So kannst du da auch nicht viel kaputtmachen.

    Einmal editiert, zuletzt von NaN (19. Mai 2024 um 15:57)

  • Vielen Dank für die Zeit und die Hilfe, NaN!

    Sorry, dass ich mich nicht zeitnahe zurückgemeldet habe, aber mich hat es krankheitsbedingt aus den Socken gehauen. Deswegen werde ich mich auch (wenn es gut läuft) erst morgen an die Umsetzung wagen und dann hoffentlich von einem Erfolg berichten :)

  • Ich habe noch einige letzte Verwirrungen bezüglich der dns challange. Es gibt einige umfangreiche Tutorials im Internet, wie dies zu bewerkstelligen ist.

    Es gibt aber auch folgende Videoanleitung, welche super simple ist und vielleicht 50 Sekunden dauert. Dort muss auch kein CNAME record angelegt werden. Ist das Vorgehen dort koscher? Vielleicht hat ja jemand Lust, sich das anzuschauen, eine zweite Meinung würde mich doch sehr interessieren.

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    EDIT: Das Problem scheint wohl zu sein, dass in der verkürzten Version kein renewal möglich ist. Leider wurde das nicht deutlich aus der Anleitung. Dann ist wohl die etwas aufwendigere Methode zu bevorzugen.

  • Das Problem scheint wohl zu sein, dass in der verkürzten Version kein renewal möglich ist.

    Hab mir das Video mal angeguckt. Und ja, genau das ist dabei das Problem.

    Nur um das einmal kurz klarzustellen: Für die HTTP-Challenge ist nur der Port 80 zu öffnen. Und der muss ja auch nicht zwingend deine API ausliefern. Es reicht wenn darauf nur die Challenge abgerufen werden kann.

    Wenn du aber zwingend die DNS-Challenge verwenden möchtest, verstehe ich noch nicht so ganz, wo du gerade hängst. Traust du dich nicht auf deSEC zu wechseln?

    „Kaputt machen“ kann man schon einiges. Aber davon lässt sich auch eigentlich alles wieder selbstständig reparieren.

    Du könntest dir auch mal acme.sh angucken. Die unterstützen auch netcup bei der DNS-Challenge.

    Und allgemein lohnt es sich mal diesen Artikel zu lesen, damit man die Challenges komplett versteht: https://letsencrypt.org/de/docs/challenge-types/

    Dieses Gebäude hat mir die Vorfahrt genommen! *hup*

  • Acme.sh + Netcup API funzt einwandfrei. Seit Jahren im Einsatz bei mir. Gestern zuletzt beim neuen Projekt. Ich kann heute Abend gern die genutzten Befehle dazu ergänzen.

    Wichtig: dns-sleep auf 630 setzen. Und DNSSEC natürlich aus, aber das sollte sich hier ja mittlerweile rumgesprochen haben. :)


  • Nur um das einmal kurz klarzustellen: Für die HTTP-Challenge ist nur der Port 80 zu öffnen. Und der muss ja auch nicht zwingend deine API ausliefern. Es reicht wenn darauf nur die Challenge abgerufen werden kann.

    Richtig, vielen Dank für die Klarstellung.

    Wenn du aber zwingend die DNS-Challenge verwenden möchtest, verstehe ich noch nicht so ganz, wo du gerade hängst. Traust du dich nicht auf deSEC zu wechseln?

    „Kaputt machen“ kann man schon einiges. Aber davon lässt sich auch eigentlich alles wieder selbstständig reparieren.

    Ja, genau das war das Problem. Ich habe noch nicht in die Tiefe alles durchschaut und eine aufploppende Meldung, dass man seine Domain unbrauchbar machen könnte, hat mich zögern lassen. Der Gedanke war, dass ich schon im Vorhinein genau wissen wollte, was alles passiert, sobald ich den ersten Schritt gegangen bin. Das Internet kann da auch manchmal ein Fluch sein, mit den vielen unterschiedlichen Informationen. Na ja, ich habe dann doch den Schritt gewagt und kann meine Records für diese Domain nun über deSEC setzen. Der Server ist über http erreichbar, also so weit alles gut. Auch wenn der ursprüngliche Grund für den Umzug die DNS-Challenge war, nehme ich innerlich wieder Abstand davon. Abgesehen von der eventuell etwas zwanghaften Fixierung darauf, dass ich den Port 80 gerne geschlossen hätte, gibt es keine allzu gute Begründung.

    Zudem sollte man besser nur in Tümpeln schwimmen, wenn man weiß wie man schwimmt und die Wassertiefe kennt. Hierzu aus einer von dir verlinkten Quelle:

    "

    Beachten Sie, dass die Angabe Ihrer vollständigen DNS-API-Anmeldedaten auf Ihrem Webserver die Auswirkungen eines Hackerangriffs auf den Webserver deutlich erhöht.

    "

    Ich denke, man sollte schon sehr genau wissen, was man da tut, und ehrlicherweise weiß ich es nicht.

    Acme.sh + Netcup API funzt einwandfrei. Seit Jahren im Einsatz bei mir. Gestern zuletzt beim neuen Projekt. Ich kann heute Abend gern die genutzten Befehle dazu ergänzen.

    Wichtig: dns-sleep auf 630 setzen. Und DNSSEC natürlich aus, aber das sollte sich hier ja mittlerweile rumgesprochen haben. :)

    Ich denke, das wäre für viele Leute interessant und ein guter Start, etwas zu lernen. Falls du die Lust findest, lass dich bitte nicht aufhalten :)

  • Ich wiederhole nochmal den Hinweis aus meiner ersten Antwort: Es ist nicht nötig, die Netcup API zu verwenden und folglich auch nicht, die API-Zugangsdaten auf dem Server zu hinterlegen, nur um die Letsencrypt DNS-01 Challenge zu absolvieren. Man kann die dafür nötige Subdomain mit dem TXT-Record, über den der Domainbesitz nachgewiesen wird, als CNAME anlegen und den TXT-Record dann z.B. bei deSEC mit deren API setzen, wenn man den CNAME auf eine Domain dort zeigen lässt. Das ist offiziell unterstützt, siehe die oben verlinkte Dokumentation. Durch das Anlegen eines CNAMEs für _acme-challenge.<YOUR_DOMAIN> macht man auch nichts kaputt und der ACME-Client hat gar keine Möglichkeit, auf die eigentliche Domain Einfluss zu nehmen, nur auf die Records am Ziel des CNAME. Das größte Problem an der Sache ist, dass deSEC im Moment keine Registrierungen für deren DynDNS Dienst zulässt.

    Die DNS-Challenge ist sehr zu empfehlen, weil damit auch Wildcard-Zertifikate möglich sind. Die sind besonders für Reverse Proxies sehr praktisch, die mehrere und z.B. für Testzwecke öfter mal wechselnde Subdomains bedienen sollen. Außerdem veröffentlicht man mit einem Wildcard-Zertifikat keine Liste der Subdomains, die man verwendet, an einer Stelle, wo sie von unzähligen Portscannern abgegriffen werden (in den CA-Logs).

    Einmal editiert, zuletzt von NaN (27. Mai 2024 um 17:15)

  • NaN Richtig, man kann problemlos die DNS-Challenge auf eine Alternativdomain auslagern. Ich sehe hier beim TO aber gar keine Anforderung dafür?
    Hatte ich stellenweise aber auch schon genutzt, ist wirklich sehr praktisch. Beispielsweise wenn Domain1 keine API anbietet, dafür aber Domain2. Oder die Zonen unterschiedlich gehandhabt werden.


    Aljoscha Gern, hier mal Auszüge meiner History der wichtigsten Befehle mit Kommentaren für dich:

    Pfade und reloadcmd sind natürlich den eigenen Bedürfnissen anzupassen. Hier handelt es sich wie man sieht um ein Zertifikat für den Webserver nginx, in dessen SSL-Config ich auf die Zertifikate verweise.

  • Ich sehe hier beim TO aber gar keine Anforderung dafür?

    Vorteile: Keine Gefahr, irgendwas kaputt zu machen, weil weder der ACME-Client noch sonst etwas auf dem Server Zugang zur Konfiguration der Domain bekommt. Das Risiko, dass jemand mit Zugang zum Server Zertifikate für die Domain ausstellen kann, ist auch bei der HTTP Challenge unvermeidlich. Alles andere kann so aber nicht passieren. Das DNS-API-Risiko scheint ja schon ein Grund zu sein, warum die DNS-Challenge gemieden wird, oder warum sonst wird folgende Warnung zitiert?

    Zitat

    Beachten Sie, dass die Angabe Ihrer vollständigen DNS-API-Anmeldedaten auf Ihrem Webserver die Auswirkungen eines Hackerangriffs auf den Webserver deutlich erhöht.

    Solange man bei Netcup keine API-Credentials erzeugen kann, die auf bestimmte Subdomains oder sogar auf bestimmte Records eingeschränkt sind, halte ich diese Aufteilung für sehr empfehlenswert, auch wenn nicht explizit danach gefragt wird. Wenn man die API auch sonst nicht braucht, spart man sich den Resellervertrag, der das Betriebsrisiko des Accounts ja doch erheblich ansteigen lässt, weil man über die API auch Domains bestellen oder auch wegtransferieren kann.

    Mit der CNAME-Lösung muss man außerdem nicht gleich das DNS-Management komplett umziehen, was vielleicht auch eine Hürde ist, die man als Anfänger nicht zusätzlich nehmen möchte.

  • Ja das stimmt, ein Berechtigungsmanagement für die API würde ich mir auch wünschen. Spielt für mich zwar eine untergeordnete Rolle, da meine Server, die die API nutzen, bei mir zuhause stehen und der Angriffswinkel klein ist, trotzdem wäre eine professionellere Umsetzung inkl. Berechtigungslevel beruhigender.

    So betrachtet kann ich dein "Beharren" auf die Auslagerung Richtung DeSec o.ä. durchaus nachvollziehen. :thumbup:

  • Gern, hier mal Auszüge meiner History der wichtigsten Befehle mit Kommentaren für dich: ...

    Sehr cool danke dir :)

    Die DNS-Challenge ist sehr zu empfehlen, weil damit auch Wildcard-Zertifikate möglich sind. Die sind besonders für Reverse Proxies sehr praktisch, die mehrere und z.B. für Testzwecke öfter mal wechselnde Subdomains bedienen sollen. Außerdem veröffentlicht man mit einem Wildcard-Zertifikat keine Liste der Subdomains, die man verwendet, an einer Stelle, wo sie von unzähligen Portscannern abgegriffen werden (in den CA-Logs).

    Das ist nicht uninteressant. Vorstellbar wäre eine Anwendung, die mit mehreren APIs spricht oder auch einem Websocket Server. Jede hätte eine eigene Subdomain und die Anfragen würden von einem reverse Proxy an die entsprechenden Stellen verteilt werden und die verschlüsselte Kommunikation würde sich wie ein Schleier über diese Subdomains legen, ist das ein realistisches Szenario?

    Ich wiederhole nochmal den Hinweis aus meiner ersten Antwort: Es ist nicht nötig, die Netcup API zu verwenden und folglich auch nicht, die API-Zugangsdaten auf dem Server zu hinterlegen, nur um die Letsencrypt DNS-01 Challenge zu absolvieren. Man kann die dafür nötige Subdomain mit dem TXT-Record, über den der Domainbesitz nachgewiesen wird, als CNAME anlegen und den TXT-Record dann z.B. bei deSEC mit deren API setzen, wenn man den CNAME auf eine Domain dort zeigen lässt. Das ist offiziell unterstützt, siehe die oben verlinkte Dokumentation. Durch das Anlegen eines CNAMEs für _acme-challenge.<YOUR_DOMAIN> macht man auch nichts kaputt und der ACME-Client hat gar keine Möglichkeit, auf die eigentliche Domain Einfluss zu nehmen, nur auf die Records am Ziel des CNAME. Das größte Problem an der Sache ist, dass deSEC im Moment keine Registrierungen für deren DynDNS Dienst zulässt.

    Das ist für mich gerade ein wenig die Hürde, da ich Schwierigkeiten habe das nachzuvollziehen. Ich versuche es trotzdem mal gemixt mit dem, was ich auf

    https://docs.certifytheweb.com/docs/dns/validation/

    dazu erfahre und halluziniere ähnlich wie eine nicht sonderlich wissende KI.

    Ich habe eine Domain example.eu bei Netcup. Für diese Domain würde ich gerne, dass api1.server.example.de, api2.server.example.de, webs.server.example.de auf einen Server zeigen und mit diesem verschlüsselt kommunizieren.

    Ich erschaffe eine Subdomain mit dem Namen auth.example.de. Diese Subdomain liegt bei deSEC (geht das überhaupt, dass man nur eine Subdomain dort verwaltet?) Diese Subdomain hat einen eigenen Server und dort führt man die DNS-Challenge aus inklusive hook, sodass ein renewal passiert. Man erzeugt ein txt-record mit dem Namen _acme-challenge.auth.example.de und übergibt den Token dem Content-Window. Nun legt man auf Netcup für jede der obrigen subdomains cname record an mit dem eintrag _acme-challenge.subdomain zeigt nach _acme-challenge.subname.auth.example.de (Bsp. _acme-challenge.api1.server.example.de zeigt nach _acme-challenge.api1.server.auth.example.de).

    Wenn ich René richtig verstehe wäre anstelle der Subdomain auth.example.de auch eine andere Domain (domain1 / domain2) möglich.


    Das ist wahrscheinlich ganz furchtbar daneben. Vielleicht hat ja jemand eine verständliche Quelle, die das Vorgehen etwas farbenfroher beschreibt.

  • Wenn du für die Domains verschiedene Zertifikate beantragen wolltest, könntest du das so machen. Mit der DNS-01-Challenge kannst du stattdessen ein Wildcard-Zertifikat für alle direkten Subdomains von server.example.com ausstellen lassen und brauchst dafür nur einen TXT-Record unter _acme-challenge.server.example.com. Dieser Name kann über einen CNAME auf einen anderen Namen verweisen, wo dann der entsprechende TXT-Record sein muss. Das Wildcard-Zertifikat deckt dann api1.server.example.de, api2.server.example.de, webs.server.example.de und alle anderen direkten Subdomains von server.example.com ab (*.server.example.com), was die Konfiguration eines Reverse Proxy für alle diese Domains sehr einfach macht. Du brauchst dann auch nicht so viele Zertifikate ausstellen zu lassen und läufst weniger Gefahr, in Rate-Limits zu stolpern. Ein Zertifikat, das alle Subdomains auflistet (statt *), würde u.U. sehr groß werden und müsste immer neu ausgestellt werden, wenn neue Subdomains dazukommen.

    Einmal editiert, zuletzt von NaN (27. Mai 2024 um 21:44)

  • Wenn man die API auch sonst nicht braucht, spart man sich den Resellervertrag, der das Betriebsrisiko des Accounts ja doch erheblich ansteigen lässt, weil man über die API auch Domains bestellen oder auch wegtransferieren kann.

    Für die DNS-API braucht man keinen Resellervertrag. (Den man sowieso nur als Firmenkunde bekommen würde.)

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Für die DNS-API braucht man keinen Resellervertrag.

    Danke für die Korrektur. Ich habe die APIs fälschlicherweise zusammengeworfen, was möglicherweise daran liegt, dass die API-Seite "unsere-api" heißt und mit "Die netcup API im Detail" überschrieben ist (Einzahl). Unter "Beantragung eines API-Passworts und API-Keys" steht dann im Screenshot "Um auf dem API Domainfunktionen zu nutzen, schließen Sie bitte einen Domainresellervertrag mit uns." Das kann man vielleicht klarer darstellen.

  • Wenn du für die Domains verschiedene Zertifikate beantragen wolltest, könntest du das so machen. Mit der DNS-01-Challenge kannst du stattdessen ein Wildcard-Zertifikat für alle direkten Subdomains von server.example.com ausstellen lassen und brauchst dafür nur einen TXT-Record unter _acme-challenge.server.example.com. Dieser Name kann über einen CNAME auf einen anderen Namen verweisen, wo dann der entsprechende TXT-Record sein muss. Das Wildcard-Zertifikat deckt dann api1.server.example.de, api2.server.example.de, webs.server.example.de und alle anderen direkten Subdomains von server.example.com ab (*.server.example.com), was die Konfiguration eines Reverse Proxy für alle diese Domains sehr einfach macht. Du brauchst dann auch nicht so viele Zertifikate ausstellen zu lassen und läufst weniger Gefahr, in Rate-Limits zu stolpern. Ein Zertifikat, das alle Subdomains auflistet (statt *), würde u.U. sehr groß werden und müsste immer neu ausgestellt werden, wenn neue Subdomains dazukommen.

    Das ist ja sogar noch besser. Ich werde morgen mal einen detaillierten Schritt für Schritt Plan ausbuchstabieren und ihn hier zur Diskussion stellen. Dies dürfte dann ja eventuell für einige Leute interessant sein. Aber schon mal vielen Dank für deine Hinweise und Ergänzungen :thumbup:

  • -- Zustand bei Start

    Wir haben zwei Domains bei Netcup (domain1.com und domain2.com). Domain1.com soll genutzt werden um von einer Anwendung mit einem Server zu

    kommunizieren. Genauer: api1.server.domain1.com, api2.server.domain1.com und webs.server.domain1.com sollen mit je einer API und einem

    Websocket auf dem Server kommunizieren (mit z.B. nginx als reverse-Proxy). Dies sollen sie SSL-verschlüsselt tun. Dafür werden wir domain2.com nutzen.

    Für domain2.com wollen wir als Namensserver deSEC (deSEC.io) nutzen. Dies bewerkstelligen wir wie in diesem Thread beschrieben:

    DNS bei deSEC - wie geht das mit DNSSEC? - netcup Kundenforum
    Hallo ich möchte für meine Domains, bei Netcup registriert, DNSSEC nutzen. Ich hab das mal bei Netcup selbst ausprobiert und das war ein Desaster. Nun möchte…
    forum.netcup.de

    Nun können wir die record-Einträge bei deSEC verwalten. Wir legen einen A-record an welcher auf unseren Server zeigt.

    Wir loggen uns in unseren Server ein und installieren das Certbot plugin von deSEC. (Siehe auch: https://pypi.org/project/certbot-dns-desec/)

    Wir installieren das Plugin mit:

    Code
    python3 -m pip install certbot certbot-dns-desec

    Als Nächstes brauchen wir den deSEC API Token. Hierzu heißt es:

    "you need a deSEC API token $TOKEN with sufficient permission for performing the required DNS changes on your domain.

    Also make sure that your domain name has been delegated to deSEC (in other words: make sure that the parent registry has the right NS records).

    If you don't have a token yet, an easy way to obtain one is by logging into your account at deSEC.io. Navigate to "Token Management" and

    create a new one. It's good practice to restrict the token permissions as much as possible, e.g. by setting the maximum unused period to

    four months. This way, the token will expire if it is not continuously used to renew your certificate. Tokens can also be created using

    the deSEC API."

    (FRAGE: Vielleicht mag ja jemand schreiben wie man "maximum unused period to four months" einstellen könnte)

    Mit unseren Domainnamen und unseren Token ausgestattet setzen wir nun an und verstauen diese an einem sicheren Ort:

    Code
    DOMAIN=domain2.com
    TOKEN=your-desec-access-token
    sudo mkdir -p /etc/letsencrypt/secrets/
    sudo chmod 700 /etc/letsencrypt/secrets/
    echo "dns_desec_token = $TOKEN" | sudo tee /etc/letsencrypt/secrets/$DOMAIN.ini
    sudo chmod 600 /etc/letsencrypt/secrets/$DOMAIN.ini

    Dies kann natürlich nach eigenen Bedürfnissen abgeändert werden.

    Nun ist es an der Zeit für unser wildcard certificate request:

    Code
    certbot certonly \
        --authenticator dns-desec \
        --dns-desec-credentials /etc/letsencrypt/secrets/$DOMAIN.ini \
        -d "$DOMAIN" \
        -d "*.$DOMAIN"

    (--authenticator dns-desec aktiviert das certbot-dns-desec plugin)

    (Vermutung!) Nun wird in der shell ein Token angezeigt, diesen kopieren wir uns und setzen einen txt-record mit Namen

    _acme-challenge.domain2.com und setzt den Token in das Content-Windows.

    (FRAGE: Der TXT-Record wird händisch eingetragen und nicht automatisch über die deSEC API erzeugt, korrekt?)

    (FRAGE: Als ein weiteres command line argument kann --dns-desec-propagation-seconds gesetzt werden. Dies setzt die Wartezeit

    fest bevor die ACME server den DNS record verifizieren will. Kann man dies ignorieren oder sollte man hier einen Wert festlegen?)

    (FRAGE: Ist hier wirklich sichergestellt das, dass wildcard certificate automatisch erneuert wird. Ich finde die Beschreibung leider

    nicht eindeutig in ihrer Formulierung. Oder müssen wir noch etwas wie sudo certbot renew veranlassen?)

    Als Nächstes wollen wir domain1.com per cname mit domain2.com verknüpfen, sodass die Kommunikation verschlüsselt stattfindet.

    Hierfür setzen wir einen cname-record und lassen

    _acme-challenge.sever.domain1.com auf _acme-challenge.domain2.com zeigen.

    Dann legt man für die Subdomains von domain1 A-records an, die auf den Server zeigen.

    (Ist das Wirklich so?)

    Es wäre wirklich toll, wenn jemand, der sich auskennt, einmal das Setzen der records durchspielen kann. Ich habe das Gefühl, mein Vorschlag kann nicht passen.


    Für einen guten abstrakten Überblick:

    https://www.eff.org/deeplinks/2018/02/technical-deep-dive-securing-automation-acme-dns-challenge-validation

    FRUST! ->

    Ich muss sagen, sich über dieses Thema zu informieren, ist schlimm!

    Ich habe mich jetzt viele Stunden damit beschäftigt, habe unterschiedliche Quellen gelesen und bin absolut unsicher, ob das so klappt.

    Die Informationen sind teilweise widersprüchlich und/oder maximal knapp formuliert.

    Das Forum war und ist da wirklich noch der Lichtblick für mich.

    Für Leute, die sehr firm im Thema sind, ist das alles sicher kein Problem. Aber für Menschen, die sich da herantasten wollen, sind die, in meinen Augen teilweise einfach schlechten Docs eine Hürde, die nicht sein müsste. Ich weiß, das gehört hier nicht unbedingt hin, aber ich bin gerade maximal gefrustet.

  • Mir ist nicht klar, wofür du den CNAME brauchst. Wenn du die Domains sowieso bei deSEC hostest und deren API für den ACME-Client verwendest, kannst du den TXT-Record direkt dort anlegen, wo er gebraucht wird. In meinem Vorschlag verbleibt der größte Teil der DNS-Records bei Netcup und nur die _acme-challenge Subdomain wird zu deSEC ausgelagert, eben per CNAME (oder per Delegation mittels NS-Records).

    Zu einem vollautomatischen Ablauf gehört noch etwas mehr: Du musst den ACME-Client natürlich regelmäßig aufrufen und solltest das Ergebnis, das neu ausgestellte Zertifikat, auch dem/den Nutzer(n) des Zertifikats (Reverse Proxy, Webserver, etc.) automatisch zur Verfügung stellen und auch automatisch dafür sorgen, dass das eingewechselte Zertifikat verwendet wird und nicht etwa das, was beim Start geladen wurde.

  • Mir ist nicht klar, wofür du den CNAME brauchst. Wenn du die Domains sowieso bei deSEC hostest und deren API für den ACME-Client verwendest, kannst du den TXT-Record direkt dort anlegen, wo er gebraucht wird.

    Da hast du mich falsch verstanden. Der Ausgangspunkt war, zwei Domains (domain1, domain2), von der eine zu deSEC übertragen wird und von dem aus die dns-challenge gehändelt wird und eine zweite, die sich durch eine Verlinkung über cname die Verschlüsselung aneignet.

    Siehe auch: https://www.eff.org/deeplinks/2018…enge-validation

    -> Der Absatz: - Use a "Throwaway" Validation Domain -

    Ich bin aus verschiedenen Gründen auch am Ende davon ausgegangen, dass auch du das so meinen musst. Nämlich:

    In meinem Vorschlag verbleibt der größte Teil der DNS-Records bei Netcup und nur die _acme-challenge Subdomain wird zu deSEC ausgelagert, eben per CNAME (oder per Delegation mittels NS-Records).

    Geht das? In den "Prerequisites" von dem certbot-dns-desec Plugin Dokumentation heißt es:

    "To get a Let's Encrypt certificate for your domain $DOMAIN, you need a deSEC API token $TOKEN with sufficient permission for performing the

    required DNS changes on your domain. Also make sure that your domain name has been delegated to deSEC

    (in other words: make sure that the parent registry has the right NS records)."

    Bei meinem Versuch einfach nur eine Subdomain zu deSEC zu übertragen, hat deSEC gemeckert. Erst als ich wirklich die ganze Domain genutzt habe, ging es.

    Insofern habe ich die Informationen so zusammengetragen, wie es am meisten Sinn für mich gemacht hat.

    Zu einem vollautomatischen Ablauf gehört noch etwas mehr: Du musst den ACME-Client natürlich regelmäßig aufrufen und solltest das Ergebnis, das neu ausgestellte Zertifikat, auch dem/den Nutzer(n) des Zertifikats (Reverse Proxy, Webserver, etc.) automatisch zur Verfügung stellen und auch automatisch dafür sorgen, dass das eingewechselte Zertifikat verwendet wird und nicht etwa das, was beim Start geladen wurde.

    Danke für die Klärung.

    Ich danke dir für die Mühen, ich will dir auch nicht weiter die Zeit klauen. Ich werde das jetzt von der Seitenlinie beobachten und sobald ich einen für mich gangbaren Weg gefunden habe, diesen in einem Testballon nochmal angehen.

    Was mich Ende noch interessieren würde (Aber nur wenn du irgendwann mal Lust und Zeit hast), wäre eine Skizzierung, wo du wie deine Records setzt und wo du die Challenge initiierst.

    Liebe Grüße

  • Was mich Ende noch interessieren würde (Aber nur wenn du irgendwann mal Lust und Zeit hast), wäre eine Skizzierung, wo du wie deine Records setzt und wo du die Challenge initiierst.

    Ich nutze das so, wie ich das beschrieben habe, mit einem CNAME von hier zu einer Domain bei deSEC. Daher weiß ich, dass das funktioniert. Der Client schickt den Certificate Signing Request an Letsencrypt (für ein Wildcard-Zertifikat für die Domain bei Netcup), setzt dann den TXT-Record bei deSEC, lässt Letsencrypt darüber die Kontrolle über die Domain verifizieren, holt sich das Zertifikat ab und sorgt dann noch dafür, dass der Server das neue Zertifikat verwendet. Das Umleiten der _acme-challenge Subdomain per CNAME oder Delegation ist ein offiziell unterstütztes Feature. Ich hatte weiter oben schon die Seite verlinkt, wo das steht. Da es unzählige Clients gibt und ich keinen bestimmten empfehlen möchte, belasse ich es bei dieser Konzeptbeschreibung.