Let's Encrypt/LAN: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''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 | * Den (Linux-)Server in Ihrem lokalen Netzwerk mit Root-Rechten | ||
== Certbot installieren == | == Certbot installieren == | ||
<syntaxhighlight lang="bash" highlight="1,2" line> | |||
sudo apt install certbot | |||
certbot --version | |||
</syntaxhighlight> | |||
== 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> | |||
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 | #!/usr/bin/env python3 | ||
sudo mv acme-dns-auth.py /etc/letsencrypt/ | |||
</syntaxhighlight> | |||
== 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 | |||
<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 | |||
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 | |||
Warten auf Bestätigung... | |||
</syntaxhighlight> | |||
Melden Sie sich bei Ihrem Domain-Anbieter an und fügen Sie Ihrer Domain die folgenden Einträge hinzu | |||
{| class="wikitable sortable | {| 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 66: | Zeile 75: | ||
|} | |} | ||
; | ; Erläuterung | ||
* _acme-challenge.home.example.com: | * _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: | * home.example.com: Die öffentliche IP Ihres Routers | ||
* rpi.home.example.com: | * rpi.home.example.com: Die lokale IP-Adresse des Raspberry Pi (Beispiel: 192.168.1.5) | ||
* extern.home.example.com: | * 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 <tt>_acme-challenge.home.example.com</tt>-Eintrag gemacht | ||
<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 == | ||
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 | |||
[[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
- Ich verwende acme-dns-certbot-joohoi dafür
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