Let's Encrypt/LAN: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
== Let's Encrypt im LAN ==
'''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.  
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.  
Zeile 19: Zeile 21:
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:


<syntaxhighlight lang="bash" highlight="1,2,3,5" line>
<syntaxhighlight lang="bash" highlight="1,2,3,5" line>
Zeile 34: Zeile 35:
*.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:
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>
  _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:
Zeile 82: Zeile 87:
* 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>


== Test ==
== Test ==

Version vom 15. Dezember 2024, 20:34 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: [1] und das Zertifikat ist für die von Ihnen verwendete Domain gültig! Hurra!

Externer Zugriff über das Internet

Zugriff auf Home Assistant jetzt mit in diesem Beispiel: https://external.home.example.com:8123 und das Zertifikat ist wieder für die von Ihnen verwendete Domain gültig.