Let's Encrypt/LAN: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(6 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 ==
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>


== Getting the certificates ==
Mit diesem Skript erhalten Sie den CNAME-Eintrag für die DNS-Validierung, der wie folgt aussieht
We’re now going to generate a wildcard certificate on the subdomain home of your domain.  
Ausgabe von acme-dns-auth.py
* I’m using the subdomain home and you’ll get the result
*.home.example.com


Now execute the generation of the wildcard certificate:
Bitte fügen Sie Ihrer Haupt-DNS-Zone den folgenden CNAME-Eintrag hinzu
# 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>
_acme-challenge.home.example.com CNAME a14de1b9-e910-4d91-18bf-07a3763b88e6.auth.acme-dns.io


With this script you’re getting the CNAME record for DNS validation and looks like this:
Warten auf Bestätigung...
Output from acme-dns-auth.py:
</syntaxhighlight>
Please add the following CNAME record to your main DNS zone:
_acme-challenge.home.example.com CNAME a14de1b9-e910-4d91-18bf-07a3763b88e6.auth.acme-dns.io.
Waiting for verification...


Login into your domain provider and add the following records to your domain:
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 68: Zeile 75:
|}
|}


; Explanation
; Erläuterung
* _acme-challenge.home.example.com: for ACME DNS verification (for example: 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.)
* Remark: this could be without a dot after dns.io
* Hinweis: Dies kann ohne Punkt nach dns.io erfolgen
* home.example.com: The public IP of your router
* home.example.com: Die öffentliche IP Ihres Routers
* rpi.home.example.com: The local IP address of the Raspberry Pi (example: 192.168.1.5)
* rpi.home.example.com: Die lokale IP-Adresse des Raspberry Pi (Beispiel: 192.168.1.5)
* extern.home.example.com: This is the external url to reach your application (example Home Assistant)
* extern.home.example.com: Dies ist die externe URL, über die Sie Ihre Anwendung (Beispiel Home Assistant) erreichen können


After you’ve added the DNS records, you maybe need to wait a while until the new DNS settings are propagated on the internet.
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


Now you can restart the certbot tool again and you will get the certificates successfully!  
Jetzt können Sie das Certbot-Tool erneut starten und erhalten die Zertifikate erfolgreich!
* If it isn’t successful yet, please wait and retry it again or check your DNS records.
* Wenn es noch nicht erfolgreich ist, warten Sie bitte und versuchen Sie es erneut oder überprüfen Sie Ihre DNS-Einträge
* Maybe you made a mistake with the <tt>_acme-challenge.home.example.com</tt> record.
* 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