Let's Encrypt/LAN: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
Zeile 2: Zeile 2:


== Beschreibung ==
== Beschreibung ==
Ich habe Home Assistant mit HTTPS-Fernzugriff, aber es ist nicht möglich, Home Assistant im lokalen Netzwerk zu erreichen, ohne die Fehlermeldung "Ihre Verbindung ist nicht privat" zu erhalten.
Ich habe Home Assistant mit HTTPS-Fernzugriff, aber es ist nicht möglich, Home Assistant im lokalen Netzwerk zu erreichen, ohne die Fehlermeldung "Ihre Verbindung ist nicht privat" zu erhalten
* Das liegt daran, dass Ihre lokale IP oder URL nicht im SSL-Zertifikat aufgeführt ist.
* Das liegt daran, dass Ihre lokale IP oder URL nicht im SSL-Zertifikat aufgeführt ist
* Und es ist nicht möglich, die Home Assistant-App für Android zu verwenden, weil der SSL-Fehler auftritt.
* Und es ist nicht möglich, die Home Assistant-App für Android zu verwenden, weil der SSL-Fehler auftritt
* Ich habe keine guten Lösungen im Internet gefunden, aber ich habe eine einfache Lösung gefunden, die in diesem Beitrag beschrieben wird.
* Ich habe keine guten Lösungen im Internet gefunden, aber ich habe eine einfache Lösung gefunden, die in diesem Beitrag beschrieben wird
* Natürlich können Sie diese Lösung auch für andere Anwendungen als Home Assistant verwenden.
* Natürlich können Sie diese Lösung auch für andere Anwendungen als Home Assistant verwenden


Was Sie brauchen
Was Sie brauchen
Zeile 19: Zeile 19:


== Installation von acme-dns-certbot-joohoi ==
== Installation von acme-dns-certbot-joohoi ==
Da ich im Netzwerk keinen Port 80 für die ACME-Verifizierung zur Verfügung habe, verwende ich die DNS-01-Verifizierung.
Da ich im Netzwerk keinen Port 80 für die ACME-Verifizierung zur Verfügung habe, verwende ich die DNS-01-Verifizierung
* Ich verwende [https://github.com/joohoi/acme-dns-certbot-joohoi acme-dns-certbot-joohoi] dafür.
* Ich verwende [https://github.com/joohoi/acme-dns-certbot-joohoi acme-dns-certbot-joohoi] dafür


<syntaxhighlight lang="bash" highlight="1,2,3,5" line>
<syntaxhighlight lang="bash" highlight="1,2,3,5" line>
Zeile 31: Zeile 31:


== Erhalt der Zertifikate ==
== Erhalt der Zertifikate ==
Wir werden nun ein Wildcard-Zertifikat für die Subdomain-Startseite Ihrer Domain generieren.
Wir werden nun ein Wildcard-Zertifikat für die Subdomain-Startseite Ihrer Domain generieren
* Ich verwende die Subdomain-Startseite und Sie erhalten das Ergebnis  
* Ich verwende die Subdomain-Startseite und Sie erhalten das Ergebnis
*.home.example.com
*.home.example.com


Zeile 40: Zeile 40:
</syntaxhighlight>
</syntaxhighlight>


Mit diesem Skript erhalten Sie den CNAME-Eintrag für die DNS-Validierung, der wie folgt aussieht:
Mit diesem Skript erhalten Sie den CNAME-Eintrag für die DNS-Validierung, der wie folgt aussieht
Ausgabe von acme-dns-auth.py:
Ausgabe von acme-dns-auth.py


Bitte fügen Sie Ihrer Haupt-DNS-Zone den folgenden CNAME-Eintrag hinzu:
Bitte fügen Sie Ihrer Haupt-DNS-Zone den folgenden CNAME-Eintrag hinzu
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
_acme-challenge.home.example.com CNAME a14de1b9-e910-4d91-18bf-07a3763b88e6.auth.acme-dns.io.
_acme-challenge.home.example.com CNAME a14de1b9-e910-4d91-18bf-07a3763b88e6.auth.acme-dns.io


Warten auf Bestätigung...
Warten auf Bestätigung...
</syntaxhighlight>
</syntaxhighlight>


Melden Sie sich bei Ihrem Domain-Anbieter an und fügen Sie Ihrer Domain die folgenden Einträge hinzu:
Melden Sie sich bei Ihrem Domain-Anbieter an und fügen Sie Ihrer Domain die folgenden Einträge hinzu
{| class="wikitable sortable options“
{| class="wikitable sortable options“
|-  
|-
! | Hostname
! | Hostname
! | Type
! | Type
! | Value
! | Value
|-  
|-
|| _acme-challenge.home.example.com
|| _acme-challenge.home.example.com
|| CNAME
|| CNAME
|| a14de1b9-e910-4d91-18bf-07a3763b88e6.auth.acme-dns.io.
|| a14de1b9-e910-4d91-18bf-07a3763b88e6.auth.acme-dns.io
|-  
|-
|| home.example.com
|| home.example.com
|| A
|| A
||
||
|-  
|-
|| rpi.home.example.com
|| rpi.home.example.com
|| A
|| A
||
||
|-  
|-
|| extern.home.example.com
|| extern.home.example.com
|| CNAME
|| CNAME
Zeile 76: Zeile 76:


; Erläuterung
; Erläuterung
* _acme-challenge.home.example.com: für die ACME-DNS-Verifizierung (zum Beispiel: a14de1b9-e910-4d91-18bf-07a3763b88e6.auth.acme-dns.io.).
* _acme-challenge.home.example.com: für die ACME-DNS-Verifizierung (zum Beispiel: a14de1b9-e910-4d91-18bf-07a3763b88e6.auth.acme-dns.io.)
* Hinweis: Dies kann ohne Punkt nach dns.io erfolgen
* Hinweis: Dies kann ohne Punkt nach dns.io erfolgen
* home.example.com: Die öffentliche IP Ihres Routers
* home.example.com: Die öffentliche IP Ihres Routers
Zeile 82: Zeile 82:
* extern.home.example.com: Dies ist die externe URL, über die Sie Ihre Anwendung (Beispiel Home Assistant) erreichen können
* extern.home.example.com: Dies ist die externe URL, über die Sie Ihre Anwendung (Beispiel Home Assistant) erreichen können


Nachdem Sie die DNS-Einträge hinzugefügt haben, müssen Sie möglicherweise eine Weile warten, bis die neuen DNS-Einstellungen im Internet verbreitet werden.
Nachdem Sie die DNS-Einträge hinzugefügt haben, müssen Sie möglicherweise eine Weile warten, bis die neuen DNS-Einstellungen im Internet verbreitet werden


Jetzt können Sie das Certbot-Tool erneut starten und erhalten die Zertifikate erfolgreich!  
Jetzt können Sie das Certbot-Tool erneut starten und erhalten die Zertifikate erfolgreich!
* Wenn es noch nicht erfolgreich ist, warten Sie bitte und versuchen Sie es erneut oder überprüfen Sie Ihre DNS-Einträge.
* Wenn es noch nicht erfolgreich ist, warten Sie bitte und versuchen Sie es erneut oder überprüfen Sie Ihre DNS-Einträge
* Möglicherweise haben Sie einen Fehler mit dem <tt>_acme-challenge.home.example.com</tt>-Eintrag gemacht.
* Möglicherweise haben Sie einen Fehler mit dem <tt>_acme-challenge.home.example.com</tt>-Eintrag gemacht


<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
Zeile 93: Zeile 93:


== Test ==
== Test ==
Wenn Sie dies noch nicht getan haben, müssen Sie die Ports von Ihrem Router an den Raspberry Pi weiterleiten.
Wenn Sie dies noch nicht getan haben, müssen Sie die Ports von Ihrem Router an den Raspberry Pi weiterleiten
* Für Home Assistant ist es 8123/tcp.
* Für Home Assistant ist es 8123/tcp


; Lokaler Netzwerkzugriff
; Lokaler Netzwerkzugriff
auf Home Assistant jetzt mit in diesem Beispiel
auf Home Assistant jetzt mit in diesem Beispiel
  https://rpi.home.example.com:8123
  https://rpi.home.example.com:8123


; Externer Zugriff über das Internet
; Externer Zugriff über das Internet

Aktuelle Version vom 15. Dezember 2024, 20:38 Uhr

Let's Encrypt/LAN - Let's Encrypt im LAN

Beschreibung

Ich habe Home Assistant mit HTTPS-Fernzugriff, aber es ist nicht möglich, Home Assistant im lokalen Netzwerk zu erreichen, ohne die Fehlermeldung "Ihre Verbindung ist nicht privat" zu erhalten

  • Das liegt daran, dass Ihre lokale IP oder URL nicht im SSL-Zertifikat aufgeführt ist
  • Und es ist nicht möglich, die Home Assistant-App für Android zu verwenden, weil der SSL-Fehler auftritt
  • Ich habe keine guten Lösungen im Internet gefunden, aber ich habe eine einfache Lösung gefunden, die in diesem Beitrag beschrieben wird
  • Natürlich können Sie diese Lösung auch für andere Anwendungen als Home Assistant verwenden

Was Sie brauchen

  • Eine eigene Domain mit Zugriff auf das DNS
  • Den (Linux-)Server in Ihrem lokalen Netzwerk mit Root-Rechten

Certbot installieren

sudo apt install certbot
certbot --version

Installation von acme-dns-certbot-joohoi

Da ich im Netzwerk keinen Port 80 für die ACME-Verifizierung zur Verfügung habe, verwende ich die DNS-01-Verifizierung

wget https://github.com/joohoi/a,cme-dns-certbot-joohoi/raw/master/acme-dns-auth.py
chmod +x acme-dns-auth.py
editor acme-dns-auth.py
 #!/usr/bin/env python3
sudo mv acme-dns-auth.py /etc/letsencrypt/

Erhalt der Zertifikate

Wir werden nun ein Wildcard-Zertifikat für die Subdomain-Startseite Ihrer Domain generieren

  • Ich verwende die Subdomain-Startseite und Sie erhalten das Ergebnis
  • .home.example.com

Führen Sie nun die Generierung des Wildcard-Zertifikats aus

sudo certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d home.example.com

Mit diesem Skript erhalten Sie den CNAME-Eintrag für die DNS-Validierung, der wie folgt aussieht Ausgabe von acme-dns-auth.py

Bitte fügen Sie Ihrer Haupt-DNS-Zone den folgenden CNAME-Eintrag hinzu

_acme-challenge.home.example.com CNAME a14de1b9-e910-4d91-18bf-07a3763b88e6.auth.acme-dns.io

Warten auf Bestätigung...

Melden Sie sich bei Ihrem Domain-Anbieter an und fügen Sie Ihrer Domain die folgenden Einträge hinzu

Hostname Type Value
_acme-challenge.home.example.com CNAME a14de1b9-e910-4d91-18bf-07a3763b88e6.auth.acme-dns.io
home.example.com A
rpi.home.example.com A
extern.home.example.com CNAME home.example.com
Erläuterung
  • _acme-challenge.home.example.com: für die ACME-DNS-Verifizierung (zum Beispiel: a14de1b9-e910-4d91-18bf-07a3763b88e6.auth.acme-dns.io.)
  • Hinweis: Dies kann ohne Punkt nach dns.io erfolgen
  • home.example.com: Die öffentliche IP Ihres Routers
  • rpi.home.example.com: Die lokale IP-Adresse des Raspberry Pi (Beispiel: 192.168.1.5)
  • extern.home.example.com: Dies ist die externe URL, über die Sie Ihre Anwendung (Beispiel Home Assistant) erreichen können

Nachdem Sie die DNS-Einträge hinzugefügt haben, müssen Sie möglicherweise eine Weile warten, bis die neuen DNS-Einstellungen im Internet verbreitet werden

Jetzt können Sie das Certbot-Tool erneut starten und erhalten die Zertifikate erfolgreich!

  • Wenn es noch nicht erfolgreich ist, warten Sie bitte und versuchen Sie es erneut oder überprüfen Sie Ihre DNS-Einträge
  • Möglicherweise haben Sie einen Fehler mit dem _acme-challenge.home.example.com-Eintrag gemacht
sudo certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d home.example.com

Test

Wenn Sie dies noch nicht getan haben, müssen Sie die Ports von Ihrem Router an den Raspberry Pi weiterleiten

  • Für Home Assistant ist es 8123/tcp
Lokaler Netzwerkzugriff

auf Home Assistant jetzt mit in diesem Beispiel

https://rpi.home.example.com:8123
Externer Zugriff über das Internet

Zugriff auf Home Assistant jetzt mit in diesem Beispiel

https://external.home.example.com:8123