Lets Encrypt ACMEv2 | RFC 2136 Update | Strato
-
Ich bin gerade auf den alten Thread gestoßen, weiß jemand ob das bei Strato inzwischen geht?
Würde mir gerne das manuelle Anlagen vom DNS TXT bei Strato sparen...Wenn ich mir allerdings die Method Liste so anschaue vermisse ich Strato, kein gutes Zeichen.
-
-
Jup. Man kann das simpel mit der Nutzung von DNS Alias von Acme nutzen.
-
Man legt sich bei einem kompatiblen DynDNS Anbieter, der LetsEncrypt Zertifikate unterstützt und einem optimalerweise noch DNS Zugriff erlaubt (damit man Einträge sinnvoll gestalten kann) einen Account an.
Empfehlung: desec.io -
Am Beispiel von DeSec weitergedacht: Man legt sich einen DynDNS Adresse an. Bspw. beispiel.dedyn.io
-
Man erstellt ein Token im Tokenmanagement (oder bei einem anderen Dienst entsprechende Credentials, Keys etc.)), damit man DynDNS und ACME Funktionen sinnvoll nutzen kann. Als Tokenname bspw.
pfSense
eintragen damit man weiß wer das Token nutzt. Beispiel:62AUBFFgn9G0otIxcw99RZABHud9
-
Mit dem Token bewaffnet legt man sich erstmal einen DynDNS Eintrag an und nutzt dort das Token etc. um zu testen, dass alles sauber läuft. DeDyn ist verfügbar als v4 oder v6 Service, als Passwort wird das Token genutzt. Angelegt sollte in der DeSec UI ein A oder AAAA Record mit der IP auftauchen - also alles OK
-
Für ACME von der "komplizierten" Domain ohne API setzt man nun - je nachdem ob es ein einzelner Host oder ein Wildcard Zert für die ganze Domain sein soll - einen statischen CNAME Eintrag im DNS des Anbieters an:
_acme-challenge.host.meinedomain.de IN CNAME _acme-challenge.beispiel.dedyn.io.
-
Wenn ich jetzt ein Zertifikat für
host.meinedomain.de
erstellen möchte, kann ich das im Acme Package der pfSense wie folgt machen:- Acme Config, am Besten erst mit einem LetsEncrypt Staging Account und nicht direkt gegen live um nicht geblockt zu werden wenn es nicht klappt.
- Bei Domain SAN Liste dann wie folgt:
- Enabled,
host.meinedomain.de
, Method: DNS-desec.io, Token:62AUBFFgn9G0otIxcw99RZABHud9
, Name:meinlogin@email.name
(E-Mail des deSEC Accounts) , Enable DNS-Alias Mode:beispiel.dedyn.io
, Enable DNS domain alias mode: KEIN Haken
-
Nach Speichern und einem
Issue
Kommando, sollte nach einiger Ablaufzeit ein Zertifikat für denhost.meinedomain.de
unterzeichnet von LE Staging rausfallen. Ansonsten aufmerksam das Log im Popup lesen!
Damit kann man die Auth via API Eintrag des TXT Records in der dedyn.io Zone lösen, während im händischen DNS Tool des Providers (Strato, 1und1 etc.) ein einfacher CNAME eingetragen wird für den Hostnamen, den man ausstellen möchte.
Das Ganze kann man dann natürlich für beliebige weitere Hostnamen wiederholen/ausdehnen, für jeden weiteren legt man beim "AltProvider" einfach weitere CNAMEs nach dem gleichen Schema mit Ziel
_acme-challenge.beispiel.dedyn.io
an. Da kann man beliebig viele drauf zeigen lassen. Oder man kann es auch für eine Wildcard Domain ausdehnen.Nichts desto trotz ist es somit sehr simpel machbar, seine Domain via DNS mit LetsEncrypt Zertifikaten auszustatten ohne sich mit schlechten DNS Interfaces oder altbackenen Herstellern rumzuschlagen. Und mitunter ist das Umziehen der Domain ja nicht ganz so trivial wenn da ganze Hosting Pakete dranhängen - leider.
Cheers
\jensEdit: Topic Titel geändert denn wie gezeigt ist das nur "zum Teil" nicht möglich. Ja DynDNS direkt mit der eigenen Strato Domain ist schwierig, wobei DynDNS hier mit einem Custom-Typ DDNS Job in pfSense möglich sein sollte. Aber mit einem sinnvollen DNS Anbieter wie deSEC ist es möglich. Man kann zusätzlich die eigene Domain auch per CNAME auf den entsprechenden dedyn.io Hostnamen zeigen lassen - dann hat man sowohl für dyndns als auch für Zertifikate die eigene Domain im Einsatz.
-
-
@jegr
danke für die Anleitung Jens, ich war mir nicht sicher ob ich mir das alles am Freitag merken konnte (hätte ich dann früher oder später gemerkt).Setzt Du desec.io auch für Firmen ein oder ist das nicht so gerne gesehen da e.V.?
-
@slu said in Lets Encrypt ACMEv2 | RFC 2136 Update | Strato:
Setzt Du desec.io auch für Firmen ein oder ist das nicht so gerne gesehen da e.V.?
Da haben die Betreiber gar keine Probleme mit, was sie mir auch nach Rückfrage bei den Kollegen bestätigt haben. Bei Firmen ist/wäre lediglich ein kleiner Spendenobulus gern gesehen, denn das ganze betreibt sich natürlich nicht von selbst. Aber prinzipiell steht das allen offen bzw. es gelten die Terms of Use: https://desec.io/terms
Ich habe da aber schon einigen Firmen geraten bspw. eine Domain für solche Validierungszwecke dorthin zu verfrachten und wenn möglich nen kleinen Obolus zu spenden.
-
@jegr said in Lets Encrypt ACMEv2 | RFC 2136 Update | Strato:
Ich habe da aber schon einigen Firmen geraten bspw. eine Domain für solche Validierungszwecke dorthin zu verfrachten und wenn möglich nen kleinen Obolus zu spenden.
Obolus ist Ehrensache und keine Frage.
-
Danke @Jens danke für die Anleitung, bei der ich leider noch Verständnislücken habe.
Ich habe eine subdomain mysub.xyz.de für die ich in der pfSense wildcard-Zertifikate erstellen möchte. Bisher erfolglos.
Die pfSense ist neu. Bisher betreibe ich einige Server zuhause, die mit einer subdmain angesprochen werden können. Die Aufrufe der mysub01.yxz.de, mysub02.yxz.de, .... werden von einem Reverse-Proxy auf einer Synology an den richtigen Server geleitet. Die Zertifikate erledigt auch die Synology.Das habe ich bisher gemacht:
Zu 1-4. Nach der Anmeldung bei dessec.io, habe ich dort meine Domain yxz.de (strato.de) in der Lasche „Domain Management“ angelegt.
Im „Token Management“ habe ich meine pfSense auch angelegt und konnte auch in der pfSense unter „Dynamic DNS Clients“ einen Eintrag generieren, der sich meine aktuelle IP-Adresse zieht und grün ist. Auf dessec.io hat meine Domain auch ein A und NS (ns1.desec.org. und ns2.desec.io.) bekommen.In 2. heisst es „Man legt sich einen DynDNS Adresse an. Bspw. beispiel.dedyn.io“
habe ich das damit erledigt?Zu 5. Ich verstehe das grundsätzliche Prinzip nicht richtig und somit auch was eigentlich zu tun ist. Muss ich
_acme-challenge.host.meinedomain.de IN CNAME _acme-challenge.beispiel.dedyn.io.
bei strato.de in CNAME eintragen, oder in dessec.io und vor allem was ist in meinem Fall was (host, ...)?Bei 6. und 7. angekommen, merke ich, dass meine Bemühungen nicht von Erfolg gekrönt sind.
Was entspricht bei meinen Bezeichnern host.domain.de? Sub-Domain? Müsste ich in dessec.io vielleicht mysub.xyz.de eintragen und nicht meine Domäne? So einfach die dessec.io umso schwieriger finde ich es etwas an der richtigen Stelle einzutragen. Die Doku spricht auch nicht gerade zu mir.Beim Anlegen der Zertifikate gebe ich in Kürze das hier in die Domain SAN List ein:
deSEC.io API Token , deSEC.io Username für mein Domain „*.yxz.de“ und das gleiche für den zweiten Eintrag für „xyz.de“Wenn ich Issue drücke, kommt nach einer Weile nichts. Ich habe vieles ausprobiert in NS, CNAME bei Strato und komme nicht weiter. Kann mir jemand helfen?
Ich habe die Anleitung gelesen, aber nicht wirklich durchdrungen. :-( -
@alcamar ich habe es bei mir ähnlich laufen.
- desec.io nutze ich mit meiner eigenen domain als dns/dyndns dienst.
- bei meinem provider wo ich die domain habe entsprechend den dns eintrag geändert das (wie in der doku) das jetzt dns über desec läuft
- dann entsprechend die hosts angelegt die ich brauchte
- in der sense dyndns konfiguriert
- die webui der sense auf einen anderen port gelegt (so das 80/443 frei/nicht genutzt ist)
- Acme Service entsprechend mit HTTP01 konfiguriert
usw.
du kannst doch mal das was du konfiguriert hast als screenshot posten, so können wir sehen was nicht richtig ist
-
@alcamar said in Lets Encrypt ACMEv2 | RFC 2136 Update | Strato:
Zu 1-4. Nach der Anmeldung bei dessec.io, habe ich dort meine Domain yxz.de (strato.de) in der Lasche „Domain Management“ angelegt.
Im „Token Management“ habe ich meine pfSense auch angelegt und konnte auch in der pfSense unter „Dynamic DNS Clients“ einen Eintrag generieren, der sich meine aktuelle IP-Adresse zieht und grün ist. Auf dessec.io hat meine Domain auch ein A und NS (ns1.desec.org. und ns2.desec.io.) bekommen.Hi! Dann hast du meinen Post leider falsch verstanden. Ich meinte mit Punkten 1-4 dass man sich eine DynDNS Domain(!) bei desec.io "bestellt" bzw. registriert. NICHT seine Domain von woanders dort anlegt. Das funktioniert nicht, wenn die Domain noch auf einen anderen Provider zeigt (NS Records zeigen bspw. auf strato, 1&1 oder sonstwohin wo man die Domain gekauft hat und die Nameserver ggf. nicht ändern kann).
Wenn du die NS Einträge deiner Domain bei deinem Registrar verändern kannst bzw. andere angeben, dann kannst du die Domain auch komplett (DNS technisch) zu desec.io "ziehen", das ist aber nicht das, was ich da oben beschrieben habe.@alcamar said in Lets Encrypt ACMEv2 | RFC 2136 Update | Strato:
In 2. heisst es „Man legt sich einen DynDNS Adresse an. Bspw. beispiel.dedyn.io“
habe ich das damit erledigt?Nein, du hast lediglich "deine" Domain dort im DNS Management angelegt, was aber nichts bringt, solange die Domain nicht auf desec's DNS Server zeigt. Entweder - siehe oben - man ändert also die DNS Server auf die, die von desec.io angegeben werden (und zieht die DNS Verwaltung der Domain damit zu desec! Man zieht NICHT die Domain damit um oder bekommt die Domain gratis oder irgendwas.) oder man registriert sich ne dedyn.io Adresse die noch frei ist und macht die Anleitung weiter mit dieser.
@alcamar said in Lets Encrypt ACMEv2 | RFC 2136 Update | Strato:
Zu 5. Ich verstehe das grundsätzliche Prinzip nicht richtig und somit auch was eigentlich zu tun ist. Muss ich
_acme-challenge.host.meinedomain.de IN CNAME _acme-challenge.beispiel.dedyn.io.
bei strato.de in CNAME eintragen, oder in dessec.io und vor allem was ist in meinem Fall was (host, ...)?Also ist dein Alt-Provider Strato. DORT liegt auch die DNS Verwaltung für deine Domain, NICHT bei desec. Daher legt man diesen Eintrag natürlich bei Strato an und sagt damit, dass alle Anfragen zu ACME/LetsEncrypt bitte an die bei desec registrierte DynDNS Domain delegiert werden, daher auch in Punkt 1-4 das Anlegen und Registrieren einer DynDNS Domain bei desec - NICHT der eigenen.
@alcamar said in Lets Encrypt ACMEv2 | RFC 2136 Update | Strato:
Bei 6. und 7. angekommen, merke ich, dass meine Bemühungen nicht von Erfolg gekrönt sind.
Können sie auch nicht - siehe oben. Da hast du im Grundsatz schon was falsch verstanden :)
Cheers
-
@micneu said in Lets Encrypt ACMEv2 | RFC 2136 Update | Strato:
@alcamar ich habe es bei mir ähnlich laufen.
- desec.io nutze ich mit meiner eigenen domain als dns/dyndns dienst.
- bei meinem provider wo ich die domain habe entsprechend den dns eintrag geändert das (wie in der doku) das jetzt dns über desec läuft
- dann entsprechend die hosts angelegt die ich brauchte
- in der sense dyndns konfiguriert
- die webui der sense auf einen anderen port gelegt (so das 80/443 frei/nicht genutzt ist)
- Acme Service entsprechend mit HTTP01 konfiguriert
usw.
du kannst doch mal das was du konfiguriert hast als screenshot posten, so können wir sehen was nicht richtig ist
Bei der Methode die eigene Domain DNS-technisch zu DeSec.io zu packen entfällt aber die Anleitung nahezu komplett, weil desec überhaupt kein Problem damit hat jedwedes LetsEncrypt Zert via DNS auszustellen - ergo ist die Anleitung überflüssig und man kann einfach via DNS01 Methode in Acme seinen Kram ausstellen. Dafür braucht es keinen CNAME oder einen challenge-domain-alias.
-
Hallo,
zunächst herzlichen dank für eure Antworten.@JeGr : Bitte nicht nicht steinigen, wenn ich wieder meine lange Leitung unter Beweis stelle. :-) Ich glaube, dass mich Eure Antworten weitergebracht hat. Glauben ist nicht wissen, daher nochmal zur Sicherheit:
-
Strato erlaubt mir für meine subdomain (mysub.xyz.de) den NS zu ändern. Dort habe ich nun ns1.desec.io. und ns2.desec.org. eingetragen. Damit habe ich meinen Alt-Provider DNS-technisch zu desec.io umgezogen. Oder?
-
Wenn ja, dann ist die Anleitung von Jens nicht der Weg für mein Ziel. Kann mir so die pfsense Zertifikate generieren, für meine subdomain bei Strato für die desec DNS ist?
Wenn ich @micneu richtig verstehe, hat er das ja so gemacht. Den Port 443 der pfsense habe ich geändert. Eine Zertifikatserstellung ist aber immer noch nicht möglich.
@jegr said in Lets Encrypt ACMEv2 | RFC 2136 Update | Strato:
Bei der Methode die eigene Domain DNS-technisch zu DeSec.io zu packen entfällt aber die Anleitung nahezu komplett, weil desec überhaupt kein Problem damit hat jedwedes LetsEncrypt Zert via DNS auszustellen - ergo ist die Anleitung überflüssig und man kann einfach via DNS01 Methode in Acme seinen Kram ausstellen.
Das klingt für mich erfreulich, aber DSN01 Methode sollte eine Methode in ACME der pfsense sein? Oder wo muss ich da hinschauen?
Derzeit lande ich noch nicht auf die pfsense, wenn ich von außen komme. Deshalb habe ich noch einige Punkte zu lösen, fürchte ich. :-(
-
-
Bitte nicht nicht steinigen, wenn ich wieder meine lange Leitung unter Beweis stelle
Niemand wird gesteinigt hier ;)
@alcamar said in Lets Encrypt ACMEv2 | RFC 2136 Update | Strato:
Strato erlaubt mir für meine subdomain (mysub.xyz.de) den NS zu ändern. Dort habe ich nun ns1.desec.io. und ns2.desec.org. eingetragen. Damit habe ich meinen Alt-Provider DNS-technisch zu desec.io umgezogen. Oder?
Wenn es auch aktiv ist und wirkt, dann ja. Solltest du testen können indem du bei desec mysub.xyz.de als Domain anlegst und dort dann mal zum Test einen "test" A-Record mit bspw. 127.1.2.3 anlegst. Dann etwas warten und dann mal mit einem DNS Tester schauen, ob die "welt" den Eintrag auflösen kann. Bspw.
Wenn du damit dein test.mysub.xyz.de testest und 127.1.2.3 zurückkommt, dann hat Strato das sauber delegiert und du kannst die Subdomain in Zukunft komplett bei desec selbst weiterkonfigurieren ohne Strato an der Backe zu haben.
Wenn ja, dann ist die Anleitung von Jens nicht der Weg für mein Ziel. Kann mir so die pfsense Zertifikate generieren, für meine subdomain bei Strato für die desec DNS ist?
Nö dann geht es SIGNIFIKANT einfacher Dann kannst du einfach im Acme Modul als DNS Provider desec auswählen, erstellst bei desec ein Token, damit das Acme Package Einträge anlegen und ändern darf und trägst das Token in das entpsrechende Feld ein. Fertig.
@alcamar said in Lets Encrypt ACMEv2 | RFC 2136 Update | Strato:
Das klingt für mich erfreulich, aber DSN01 Methode sollte eine Methode in ACME der pfsense sein? Oder wo muss ich da hinschauen?
genau
@alcamar said in Lets Encrypt ACMEv2 | RFC 2136 Update | Strato:
Derzeit lande ich noch nicht auf die pfsense, wenn ich von außen komme. Deshalb habe ich noch einige Punkte zu lösen, fürchte ich. :-(
weil deine Anfrage zu Strato geht und dort verschimmelt. Deine Anfrage wird auch NIE zur pfSense gehen sondern komplett via DNS ablaufen. Es kommt keine Anfrage auf Port 80 oder 443 von LetsEncrypt - das ist ja der Sinn von DNS01 als Methode. Es wird über einen DNS TXT Eintrag geprüft, der vom ACME Modul automatisch angelegt wird - danach wird LE angewiesen zu prüfen - und wenn die den DNS Eintrag bestätigt haben wird er automagisch wieder gelöscht. So läuft DNS01 ab. Da aber der Nameserver bislang zu Strato zeigt und dort kein Eintrag war, ist das fehlgeschlagen. Erst wenn entweder via Challenge Alias auf eine dyndns Domain der Zugriff umdelegiert wird oder du das Ganze direkt mit einem kompatiblen Provider (wie desec) durchspielen kannst, klappt das :)
Cheers
-
Die Umleitung nach desec klappt und wird vom dnschecker bestätigt.
In der pfSense konnte ich mit dem staging account gleich bei ersten Versuch für mysub.xyz.de und *.mysub.xyz.de ein Zertifikat erstellen. Die Erstellung dauert wenige Sekunden.
Die Übernahme des gleichen Eintrags in Prod geht nicht. Nach Minuten kommt nicht einmal eine Fehlermeldung. :-( -
@alcamar said in Lets Encrypt ACMEv2 | RFC 2136 Update | Strato:
Die Übernahme des gleichen Eintrags in Prod geht nicht. Nach Minuten kommt nicht einmal eine Fehlermeldung. :-(
wenn staging problemlos geht, dann würde ich mal den prod key löschen und neu anlegen und ansonsten mal die Logs prüfen, acme erstellt eigentlich immer ein Log egal ob man was sieht oder nicht
-
ich habe mal sowohl prod als auch staging key neu erstellt. Danach staging ausprobiert und es ging nicht mehr.
Die Ursache stand wohl in der folgenden Zeile:
[Tue Jan 10 19:09:57 CET 2023] *.mysub.domain.de:Verify error:Incorrect TXT recordmysub.domain ist der Platzhalter für meine richtige Domain. Für die habe ich desec.io einen Eintrag erstellt und bei strato den ns-Record geändert.
Nach der obigen Meldung habe ich das "*" entfernt und das Zertifikat lässt sich erstellen. Mein Ziel war zwar ein wildcard-Zertifikat für die SubDomain zu ertsellen, aber wenn ich pro Server ein Zertifikat erstellen muss, kann ich damit leben.
Danke nochmal für die Hinweise @JeGr , die mich zumindest ermutigt mit neuem Schwung erneut an die Sache zu heranzugehen. :-)
-
@alcamar said in Lets Encrypt ACMEv2 | RFC 2136 Update | Strato:
Nach der obigen Meldung habe ich das "*" entfernt und das Zertifikat lässt sich erstellen. Mein Ziel war zwar ein wildcard-Zertifikat für die SubDomain zu ertsellen, aber wenn ich pro Server ein Zertifikat erstellen muss, kann ich damit leben.
Das lässt sich auch machen, es kann nur sein, dass ggf. der Delegationseintrag nicht ganz korrekt ist oder man noch einen weiteren bei Strato setzen muss, das hab ich leider gerade nicht im Kopf, aber gehen sollte es.
Aber freut mich wenn es positive Fortschritte gab :)
-
@jegr Delegationseintrag ist sowas mit _acme-challenge?
Der Fehler beim Erstellen des Zertifikats lautet:
"Error add txt for domain:_acme-challenge.mysub.domain.de"Die DNS-Namensauflösung ist das eine und das klappt auch. Aber HAProxy bekomme ich einfach nicht zum Laufen. Ich habe einige Anleitung im Netz genommen, aber sehe nicht wo das Problem sein könnte.
Da ich in diese Bereich neu bin, habe ich auch in einem anderen Forum, das HAProxy thematisiert einen Post geschrieben. Ich weiss nicht, ob das eine gute Vorgehensweise ist, oder es nicht bessere wäre in einem Forum zu bleiben. Dort schien mir HAProxy eine Thema zu sein. Eine Reaktion habe ich aber nicht bekommen.
Das Problem ist, dass beim Aufruf einer Servers hinter dem Proxy nach einer Weile ein Time-Out kommt. In den Diagnostics der pfsense bin ich verloren.
-
@alcamar meine Vermutung ist, dass meine FritzBox und die pfSense noch nicht perfekt konfiguriert sind. Auf der Fritz ist vermutlich alles richtig weitergeleitet, aber auf der PfSense fehlt vielleicht noch etwas.
Habe das Wochenende mit der Fehlersuche verbracht und es geht leider kein Reverse-Proxy. Auf der Synology war das mal eine relativ schnelle Einrichtung. Die Funktion nun auf die pfsense zu übertragen ist offensichtlich nicht so einfach. -
@alcamar
Möchtest du hier dein Leid loswerden oder erhoffst du dir auch Hilfe?
Wenn ersteres, ist das der falsche Ort. Wenn letzteres, müsstest du ein paar Details nachreichen. "Läuft nicht" oder "Bekomme Timeout" ist a bisserl zu wenig, um erkennen zu können, was du falsch gemacht hast.Wie sieht die HAproxy Konfiguration aus?
Was ist das Backend? Worauf reagiert es?
Zeigt der Proxy die versuchte Verbindung in seinem Status an? -
@viragomann sorry, Du hast Recht. Bin komplett im Wald. :-)
Im Frontend sind zwei Einträge:
- alle http-Anfragen werden nach nach https umgelenkt
- Ein Server(cam1) hört auch cam1.domain.de auf 443
Im Backend ist unter Server List nur die web-Cam konfiguriert, die auf Port 443 (80 hatte ich auch schon) hört und auf eine IP-Adresse im LAN zeigt.
HA Stats sagt, dass ein L4Check erfolgreich ist.
Die web-Adresse der webcam wird über DynDNS richtig aufgelöst.
Deine letzte Frage würde ich auch gerne beantworten, wenn ich wüßte wo ich das sehen kann.