Let's Encrypt/LAN: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Let's Encrypt im LAN ==
'''Let's Encrypt/LAN''' - Let's Encrypt im LAN
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.
== Beschreibung ==
* Und es ist nicht möglich, die Home Assistant-App für Android zu verwenden, weil der SSL-Fehler auftritt.
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 keine guten Lösungen im Internet gefunden, aber ich habe eine einfache Lösung gefunden, die in diesem Beitrag beschrieben wird.
* Das liegt daran, dass Ihre lokale IP oder URL nicht im SSL-Zertifikat aufgeführt ist
* Natürlich können Sie diese Lösung auch für andere Anwendungen als Home Assistant verwenden.
* 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
Was Sie brauchen
* Eine eigene Domain mit Zugriff auf das DNS
* Eine eigene Domain mit Zugriff auf das DNS
* Den (Linux-)Server in Ihrem lokalen Netzwerk mit Root-Rechten, in meinem Fall einen Raspberry Pi.
* Den (Linux-)Server in Ihrem lokalen Netzwerk mit Root-Rechten


== Certbot installieren ==
== Certbot installieren ==
Zeile 17: 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
* So wird es installiert:


$ wget https://github.com/joohoi/a,cme-dns-certbot-joohoi/raw/master/acme-dns-auth.py
<syntaxhighlight lang="bash" highlight="1,2,3,5" line>
$ chmod +x acme-dns-auth.py
wget https://github.com/joohoi/a,cme-dns-certbot-joohoi/raw/master/acme-dns-auth.py
$ vi acme-dns-auth.py
chmod +x acme-dns-auth.py
editor acme-dns-auth.py
  #!/usr/bin/env python3
  #!/usr/bin/env python3
sudo mv acme-dns-auth.py /etc/letsencrypt/
sudo mv acme-dns-auth.py /etc/letsencrypt/
 
</syntaxhighlight>


== 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


Führen Sie nun die Generierung des Wildcard-Zertifikats aus:
Führen Sie nun die Generierung des Wildcard-Zertifikats aus
# certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d home.example.com
<syntaxhighlight lang="bash" highlight="1" line>
sudo certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d home.example.com
</syntaxhighlight>
 
Mit diesem Skript erhalten Sie den CNAME-Eintrag für die DNS-Validierung, der wie folgt aussieht
Ausgabe von acme-dns-auth.py


Mit diesem Skript erhalten Sie den CNAME-Eintrag für die DNS-Validierung, der wie folgt aussieht:
Bitte fügen Sie Ihrer Haupt-DNS-Zone den folgenden CNAME-Eintrag hinzu
Ausgabe von acme-dns-auth.py:
<syntaxhighlight lang="bash" highlight="1" line>
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
_acme-challenge.home.example.com CNAME a14de1b9-e910-4d91-18bf-07a3763b88e6.auth.acme-dns.io.


Warten auf Bestätigung...
Warten auf Bestätigung...
</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 69: 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 75: 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


# certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d home.example.com
<syntaxhighlight lang="bash" highlight="1" line>
sudo certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d home.example.com
</syntaxhighlight>


== Testing ==
== Test ==
If you didn’t do this yet, you need to forward the ports from your router to the Raspberry Pi.
Wenn Sie dies noch nicht getan haben, müssen Sie die Ports von Ihrem Router an den Raspberry Pi weiterleiten
* For Home Assistant it is 8123/tcp.
* Für Home Assistant ist es 8123/tcp


; Local network
; Lokaler Netzwerkzugriff
Access Home Assistant now with in this example: [https://rpi.home.example.com:8123/ https://rpi.home.example.com:8123] and the certificate is valid for the domain your using! Hurray!
auf Home Assistant jetzt mit in diesem Beispiel
https://rpi.home.example.com:8123


;External access via the internet
; Externer Zugriff über das Internet
Access Home Assistant now with in this example: [https://external.home.example.com:8123/ https://external.home.example.com:8123] and the certificate is valid for the domain your using again.
Zugriff auf Home Assistant jetzt mit in diesem Beispiel
https://external.home.example.com:8123


[[Kategorie:Let's Encrypt]]
[[Kategorie:Let's Encrypt]]

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