Let's Encrypt-Zertifikat über deSEC-Domain erstellen - benötige Hilfe

Hallo zusammen,

aktuell nutze ich ein Let’s Encrypt Zertifikat über eine DuckDNS-Domäne. Hierzu gabe es ja diverse Anleitungen. Nachdem ich aber immer wieder Zugriffsprobleme hatte und auch vermehrt negative Meldungen im Netz vorhanden sind, würde ich gerne eine Domäne bei deSEC nutzen. Eine Domäne habe ich dort schon eingerichtet. Dann aber beginnen schon die Probleme. Was muss ich weiter einrichten, damit das Let’s Encrypt-AddOn in HA auch das Zertifikat erzeugt? Ich würde hierzu gerne zwei Sub-Domäns (test / prod) nutzen.
Wer kann helfen?

Viele Grüße
Jürgen

Eine Möglichkeit, Du verwendest den Nginx Proxy Manager (Add-ON) und erstellst die in NPM die jeweiligen Proxy Hosts und erstellst Dir in NPM dann das zur Domain passende Zertifikat.
Port Weiterleitung port 80 und 443 auf den NPM und in der configuration.yaml den NPM als vertrauenswürdigen Proxy eintragen.

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 192.168.178.244 

Wenn Du NPM als Add-on verwendest tust, musst Du die Docker IP Adresse angeben, z.B. 172.17.0.3

Oder die des NPM Hosts, wenn dieser eigenständig läuft.

Weitere Möglichkeit wäre einen Cloudflare Tunnel zu verwenden. Hier musst Deine Domain zu Cloudflare umziehen. Dazu gibt es 100te von Tutorials im Netz. Vorteil hier, Du musst keinen Port im Router weiterleiten.

Gruß Osorkon

Hallo Osorkon,

ich benötige keinen externen Zugriff. Ich benötige nur das Zertifikat. Den externen Zugriff realisiere ich über einen VPN-Tunnel.

Ich benötige also die Hilfe bei deSEC. Was muss ich wo eintragen, damit das Let’s Encrypt AddOn das Zertifikat erstellen kann?
Hier meine aktuellen Einstellungen. Die IP-Adressse ist natürlich korrekt eingetragen.

Warum dann der Umweg über die Domain und ein Zertifikat?
Du kannst doch bei einer VPN Verbindung mit Deinem Netz direkt über die IP Adresse auf Home Assistant zugreifen.

Einen A-Record setzt Du auf eine extern erreichbare IP Adresse, also Deinen WAN IP Adresse und nicht auf eine lokale IP in Deinem Netzwerk. Aber das Brauchst Du doch alles gar nicht, wenn Du VPN nutzen tust.

Gruß Osorkon

Leider doch, da TexttoSpeach das Zertifikat prüft und ich hier nicht mit einem selbst signierten Zertifikat arbeiten kann. Deswegen nutze ich auch aktuell ein Zertifikat mit einer “DuckDNS”-Adresse.
Auch intern nutze ich nur noch https-Verbindungen (im Normalfall im einem selbst erstellen Zertifikat).

Viele Grüße
Jürgen

Damit Du ein gültiges Zertifikat ziehen kannst. Musst Deine Domain von außen erreichbar sein.
Also Als A-Record Deine WAN Adresse eintragen und im Router die Port Weiterleitung auf Home Assistant erstellen.

Gruß Osorkon

bei DuckDNS ist das nicht notwendig. Hier habe ich diese Einstellungen (mit der IP-Adresse der HA-Instanzen)

Was läuft hier anders?

Viele Grüße
Jürgen

PS.:

hier ein Auszug aus dem Logfile des Let’s Encrypt AddOn:

Certbot failed to authenticate some domains (authenticator: dns-desec). The Certificate Authority reported these problems:
  Domain: ha.dedyn.io
  Type:   dns
  Detail: During secondary validation: DNS problem: NXDOMAIN looking up TXT for _acme-challenge.ha.dedyn.io - check that a DNS record exists for this domain
Hint: The Certificate Authority failed to verify the DNS TXT records created by --dns-desec. Ensure the above domains are hosted by this DNS provider, or try increasing --dns-desec-propagation-seconds (currently 60 seconds).
Some challenges have failed.

Auch hier trägst Du unter “current IP” Deine öffentliche IP Adresse ein. Also die von der Du aus von extern erreichbar bist. Im Router muss Du dann dafür sorgen, über eine Port Weiterleitung, dass Du bei aufrufen der Domain über dem Browser am Richtigen Ort in Deinem Netzwerk landest.

Also z.B https://meineDomain.duckdns.org
Eingehender Port 443 weiter leiten zu IP-Adresse von Home Assistant auf den Port 8123, wenn nichts anders eingestellt.

Gruß Osorkoin

Das ist so nicht korrekt.

Ich habe weder eine Portweiterleitung noch eine WAN-Adresse bei Duck DNS verwendet. Die Möglichkeit eine Interne IP-Adresse zu verwenden bietet ja auch nicht jeder DNS-Anbieter.

Das Problem schein laut Protokoll auch eher im TXT-Record zu liegen.

Leider habe ich von diesen Record-Typen keien Ahnung.

Viele Grüße
Jürgen

Wenn Du über das Letsencrypt Add-On das Zertifikat über die HTTP challenge erstellen willst.
Dann Braucht es eine Port Weiterleitung, in dem Fall eingehender Port 80 (HTTP)
Und einen A-Record auf Deinen WAN Adresse.

Nach dem du das Zertifikat erstellt hast, kannst den den A-Record und die Port Weiterleitung ja wieder entfernen. Nur bei der Aktualisierung musst Du es wieder einrichten.

Wenn Du die DNS challenge verwenden tust. Braucht es keine Port Weiterleitung, den A-Rcord aber wohl.

Gruß Osorkon

Das halte ich für ein Gerücht. Insbesondere, weil es technisch Unsinn wäre.

Wenn Du auf eine private IP das Zertifikat möchtest …

Nach Deiner Beschreibung habe ich ja auch DuckDNS konfiguriert. Dies funktioniert.

Jetzt möchte ich aber anstatt DuckDNS deSEC nutzen. Allerdings verstehe ich nicht, was ich alles bei deSEC eintragen muss. Bei DuckDNS war es ja nur die IP-Adresse von HA zum ausgewählten Domainnamen.

Viele Grüße
Jürgen

Was möchtest Du nutzen?

  • HTTP challenge
    oder
  • DNS challenge

Bei DNS challange brauchst Du noch zusätzlich den deSEC Token.

In Beide Fällen brauchst einen A-Record auf Deine WAN IP

Und bei HTTP challenge benötigst Dd noch zusätzlich die Port Weiterleitung

Gruß Osorkon

Ich möchte DNS challenge nutzen.

Hatte es mittlerweile dann auch korrekt eingerichtet und ein Zertifikat erhalten. Hatte aber ein Problem mit der Subdomain. Auch das hat sich mittlerweile geklärt. Dummerweise hatte ich in der Zwischenzeit die Domain bei deSEC wieder gelöscht. Dann wollte ich es mit einer neuen Domain testen und ich bin wieder gescheitert. Ich vermute, dass es ein gewisse Zeit dauert, bis die Domain zur Verfügung steht. Jetzt warte ich erst einmal, ob mir der deSEC-Support wieder meine gelöschte Domain bereitstellen kann :face_with_peeking_eye:

Danke für die Geduld und Hilfe.
Viele Grüße
Jürgen

Noch ein wichtiger Nachtrag für deSEC-Zertifikate:

Aus meiner Sicht sollte unbedingt die propagation_seconds (default 60) auf einen höheren Wert

dns:
  provider: dns-desec
  propagation_seconds: 300

Viele Grüße
Jürgen

Und das siehst Du so, weil?

Ich habe diese Info vom deSEC-Support erhalten. Damit hat es dann bei mir funktioniert. Mit dem Standardwert lief die Zertifizierung immer auf Fehler.