Wichtige Info

Die Inhalte, die du hier siehst stelle ich dir ohne Werbeanzeigen und ohne Tracking deiner Daten zur Verfügung. Trotzdem muss ich die Server bezahlen sowie Zeit in Recherche, Umsetzung sowie Mail Support stecken.
Um dies leisten zu können, verlinke ich in einigen Artikeln auf die Plattform Amazon. Alle diese Links nennen sich Afiliate Links. Wenn du dir mit diesem Link etwas kaufst, dann erhalte ich eine kleine Provision. Dies ändert jedoch NICHT den Preis, den du bezahlst!
Falls du mich also unterstützen möchtest, kannst du auf den Link zum Produkt klicken und hilfst mir dabei, dieses Hobby weiter zu betreiben.
Da ich Keine Werbung schalte und keine Spenden sammle, ist dies die einzige Möglichkeit, meine Systeme und mich zu finanzieren. Ich hoffe du kannst das verstehen :)



Homeassistant - Lets Encrypt AddOn konfigurieren und nutzen


DISCLAIMER

Dieser Beitrag ist nur der Ausführlichkeit halber erstellt worden. Ich Empfehle explizit NICHT die Verwendung des Lets Encrypt Plugins (sofern die DNS Challenge genutzt werden soll), sofern die Domain auch für andere Zwecke genutzt wird bzw. die Domain bei einem anbieter liegt, wo der API Zugriff auch andere Domains beeinflussen kann!
Ich habe einen Beitrag erstellt, für Personen die ihre Systeme explizit sicher aufbauen wollen. Diesen kann man hier finden.
Der Vorteil bei diesem Beitrag: Die Zertifikate können potenziell für alle Systeme verwendet und automatisiert verwaltet werden und das alles zentral an einem Ort. Spart Zeit UND ist sicherer... Das gibt es wahrlich nicht oft :)

Einleitung

Neben der Möglichkeit, Zertifikate über einen eigenen Zertifikatsserver zu verwalten, gibt es auch die einfache Variante: das offizielle Let’s Encrypt Add-on im Home Assistant Add-on Store. Dieses Add-on automatisiert die Beantragung und Erneuerung von Zertifikaten und ist für viele Szenarien an sich ausreichend.

Voraussetzungen

  • Eine öffentliche Domain, die dir gehört
  • Zugriff auf den DNS-Provider, um die DNS-Challenge einzurichten
  • Ein DNS Provider, der die DNS Challenge mit Certbot unterstützt - siehe hier
  • Home Assistant in einer Version, die den Add-on Store enthält

Hauptteil

Installation des Add-ons

  1. Öffne in Home Assistant die Einstellungen → Add-ons.
  2. Suche im Add-on Store nach Let’s Encrypt.
  3. Installiere das Add-on und klcike auf den Tab "Configuration"

Konfiguration

Eure Konfigurationsseite sollte ähnlich zu dieser sein:

Von oben herad konfigurieren wir folgendes:

  • Domains: Hier werde alle Domains eingetragen, die das Zertifikat abdecken soll (das können auch andere Dienste sein, wie DNS Webinterface oder Proxmos Interface etc. )
    Bei mir: hass.domain.de -> Ich nutze das Zertifikat nur intern. Extern ist mein System über einen ReverseProxy erreichbar (siehe hier wie das geht). Dieser hat ein eigenes Zertifikat.
  • Email: Deine Mailadresse - An diese werden wichtige Informationen gesendet, sollte es notwendig sein
  • Ein Pfad, wo die Zertifikate liegen sollen incl. Filename -> Normalerweise werden die Zertifikate automatisch unter /config/ssl oder /ssl abgelegt. Daher ist im Normalfall keine Änderung erforderliche
  • Challenge:
    • DNS: Hier kommt es drauf an, was du brauchst. Wenn der Server nur intern erreichbar ist und du die Domain nur intern nutzt und entsprechend öffentlich nicht erreichbar ist, muss die DNS Challenge verwendet werden (Nur hier können auch wildcard Zertifikate erstellt werden). Hier nochmal der Hinweis (wie oben im Disclaimer) ich empfehle nicht die Verwendung des Plugins bei der DNS Challenge, da die Credentlials für die DNS Zone plain im Plugin gespeichert sind! - Schaut euch meinen anderen Beitrag hier an!
      Ansonsten wählt ihr hier jetzt DNS aus.
    • HTTP wird gewählt, wenn Homeassistant auf die Domain auch von aussen antwortet z.B weil ein reverse Proxy verwendet wird, der alles weitergibt. Dann wird Certbot (das Tool was LetsEncrypt nutzt) versuchen den Webserver von Homeassistant zu erreichen und mit einem bestimmten Inhalt abzugleichen. Wenn das klappt, beweist ihr damit das euch diese subdomain / domain gehört und ihr erhaltet das Zertifikat (hier ist KEIN WILDCARD MÖGLICH!)
  • DNS:
    • Solltest du die DNS Challenge gewählt haben, muss hier die Anbieterkonfiguration rein.
      In meinem Fall (Netcup) muss ich zum Beispiel im CCP einen API Token anfordern und meine Kundennummer sowie den Token eingeben und zusätzlich ein paar Optionen. Bei mir sieht das so aus: (CCP Link). Im Tab Dokumentation befinden sich Konfigurationen für alle unterstützten Anbieter!
    • provider: dns-netcup
    • netcupcustomerid: "userid"
    • netcupapikey: ***
    • netcupapipassword: ***
    • propagation_seconds: "900"

Sobald alles konfiguriert ist, kann das AddOn gestartet werden.
Jetzt wirst du im Log sehen, wie die Zertifikate erstellt werden (oder auch nicht, wenn du was falsch gemacht hast ^^).
Zuletzt muss in der Konfiguration noch angepasst werden, dass SSL verwendet werden soll. Das wird in der configuration.yaml gemacht

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 192.168.100.0/24
  server_port: 443
  ssl_certificate: ssl/fullchain.pem
  ssl_key: ssl/privkey.pem 
  ip_ban_enabled: true
  login_attempts_threshold: 2
  cors_allowed_origins:
    - https://hasssrv.domain.de
    - https://hass.domain.de

Back…