Zum Inhalt springen

Let's Encrypt/LAN: Unterschied zwischen den Versionen

Aus Foxwiki
K Dirkwagner verschob die Seite Let's Encrypt:LAN nach Let's Encrypt/LAN, ohne dabei eine Weiterleitung anzulegen: Textersetzung - „:“ durch „/“
K Textersetzung - „line>“ durch „line copy>“
 
(11 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 ==
Die SSL-Zertifikate werden auf dem Raspberry Pi generiert, melden Sie sich als Benutzer '''pi''' über SSH an und installieren Sie certbot:
<syntaxhighlight lang="bash" highlight="1,2" line copy>
$ sudo apt install certbot
sudo apt install certbot
 
certbot --version
Überprüfen Sie, ob certbot gut funktioniert mit:
</syntaxhighlight>
$ certbot --version


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


== Getting the certificates ==
Führen Sie nun die Generierung des Wildcard-Zertifikats aus
We’re now going to generate a wildcard certificate on the subdomain home of your domain.
<syntaxhighlight lang="bash" highlight="1" line copy>
* I’m using the subdomain home and you’ll get the result
sudo certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d home.example.com
*.home.example.com
</syntaxhighlight>


Now execute the generation of the wildcard certificate:
Mit diesem Skript erhalten Sie den CNAME-Eintrag für die DNS-Validierung, der wie folgt aussieht
# certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d home.example.com
Ausgabe von acme-dns-auth.py


With this script you’re getting the CNAME record for DNS validation and looks like this:
Bitte fügen Sie Ihrer Haupt-DNS-Zone den folgenden CNAME-Eintrag hinzu
Output from acme-dns-auth.py:
<syntaxhighlight lang="bash" highlight="1" line copy>
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
_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:
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 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 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.


Now you can restart the certbot tool again and you will get the certificates successfully!
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
* If it isn’t successful yet, please wait and retry it again or check your DNS records.
* Maybe you made a mistake with the <tt>_acme-challenge.home.example.com</tt> record.


# certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d home.example.com
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


== Testing ==
<syntaxhighlight lang="bash" highlight="1" line copy>
If you didn’t do this yet, you need to forward the ports from your router to the Raspberry Pi.  
sudo certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d home.example.com
* For Home Assistant it is 8123/tcp.
</syntaxhighlight>


; Local network
== Test ==
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!
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


;External access via the internet
; Lokaler Netzwerkzugriff
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.
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:Kryptografie]]
[[Kategorie:Let's Encrypt]]

Aktuelle Version vom 11. Mai 2025, 13:39 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