FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: golli am 07 Januar 2017, 18:50:58

Titel: SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: golli am 07 Januar 2017, 18:50:58
Hallo,
würde gerne eine SSL Verbindung mit meinem Fhem auf einem Raspberry Pi 3 realisieren. Habe es nach diesem Video eingerichtet:
https://www.youtube.com/watch?v=WdQVeLY9OJI (https://www.youtube.com/watch?v=WdQVeLY9OJI)
Als Domain die von myFritz genommen. Wenn ich nun die Seite aufrufe, kann ich mich mit Benutzername und Passwort zwar authentifizieren, erhalte dann aber folgende Fehlermeldung.

[code]Fehlermeldung Fhem log:
FHEMWEB SSL/HTTPS error:  SSL accept attempt failed error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number


Fehlermeldung Browser:
Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /fhem.
Reason: Error reading from remote server
Apache/2.4.10 (Raspbian) Server at xxxxxxxxxxxxxxxx.myfritz.net Port 443
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: rudolfkoenig am 07 Januar 2017, 18:58:21
Bis jemand speziell fuer FHEM eine Letsencrypt Anleitung baut, wuerde ich Apache davorschalten, und FHEM per Proxy Anweisung in der Apache Konfiguration verbinden. Apache mit einem letsencrypt Zertifikat zu versehen ist trivial (letsencrypt --apache -d mydomain.de).
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: golli am 07 Januar 2017, 20:01:10
Die Anleitung nimmt einen Apache davorgeschaltet. Aber ich bekomme die Fehlermeldung.
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: rudolfkoenig am 07 Januar 2017, 20:05:53
Die Apache -> FHEM Verbindung muss nicht verschluesselt laufen. Das geht z.Bsp. so
ProxyPass        /fhem  http://localhost:8083/fhem
ProxyPassReverse /fhem  http://localhost:8083/fhem
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: golli am 07 Januar 2017, 20:19:51
Ja habe ich so konfiguriert:


<Location /fhem>
        ProxyPass http://localhost:8083/fhem
        ProxyPassReverse http://localhost:8083/fhem
</Location>
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: raimundl am 07 Januar 2017, 20:20:15
Zitat von: rudolfkoenig am 07 Januar 2017, 18:58:21
Bis jemand speziell fuer FHEM eine Letsencrypt Anleitung baut, wuerde ich Apache davorschalten, und FHEM per Proxy Anweisung in der Apache Konfiguration verbinden. Apache mit einem letsencrypt Zertifikat zu versehen ist trivial (letsencrypt --apache -d mydomain.de).

Funktioniert Letsencrypt auch, wenn die oben angeführte "mydomain.de" eine DYNDNS Adresse ist?
LG
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: golli am 07 Januar 2017, 20:22:36
Zitat von: raimundl am 07 Januar 2017, 20:20:15
Funktioniert Letsencrypt auch, wenn die oben angeführte "mydomain.de" eine DYNDNS Adresse ist?
LG

DYNDNS wird leider nicht unterstützt.
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: eisler am 07 Januar 2017, 20:26:45
Sollte eigentlich funktionieren wenn die Domain in der Public Suffix List https://publicsuffix.org/list/public_suffix_list.dat (https://publicsuffix.org/list/public_suffix_list.dat) steht.
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: raimundl am 07 Januar 2017, 20:35:13
Zitat von: eisler am 07 Januar 2017, 20:26:45
Sollte eigentlich funktionieren wenn die Domain in der Public Suffix List https://publicsuffix.org/list/public_suffix_list.dat (https://publicsuffix.org/list/public_suffix_list.dat) steht.
Hallo Danke,

in genannter Liste gibt es den Eintrag "ddns.net" und meine NO-IP Adresse lautet "xxxxxxxxx.ddns.net". Also könnte es funktionieren. Hast du vielleicht noch ein paar Hinweise, Tipps.

LG
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: raimundl am 10 Januar 2017, 16:03:12
Hallo,

möchte gerne bestätigen, dass es mit einer dynamischen IP von NO-IP funktioniert!

Für jene die es noch installieren wollen, so hat meine Eingabe am Raspi3 gelautet:

sudo ./letsencrypt-auto -d (xxxNO-IP-Adressexxx) --apache -m (mailadresse@xxxxxxx.com) --redirect --agree-tos

ohne Klammern () mit den eigenen Daten ergänzen.

LG
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: raimundl am 10 Januar 2017, 17:18:47
<Location /fhem>
        ProxyPass http://localhost:8083/fhem
        ProxyPassReverse http://localhost:8083/fhem
</Location>


Auch dieser Eintrag funktioniert!

Wenn ich nun 2 Raspi's mit fhem im Heimnetz laufen habe und auf beide von außen über den Apache Server gesichert  zugreifen will, wie müsste dann obiger Eintrag lauten.

Danke und LG
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Bapt. Reverend Magersuppe am 11 Januar 2017, 12:52:57
Du musst dann 2 Locations angeben auf die Du im ProxyPass verweist.
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: ing.robby am 30 Januar 2017, 21:21:52
Hallo,

ich habe noch eine Frage dazu.

Wenn ich über den apache letsencrypt laufen lasse und über no-ip dyndns auf meinen RasPi zugreife. Ist das dann eine sichere Verbindung oder weißt diese Methode doch Sicherheitslücken auf?

Ich habe auch das eingangs erwähnte tutorial gesehen und versucht, nur leider gibt es kaum einen Anbieter, die subdomans mit dyndns anbieten und letsencrypt unterstützen...  :(

Gruß Robby
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: drhirn am 31 Januar 2017, 13:15:57
Zitat von: robby_ing am 30 Januar 2017, 21:21:52Wenn ich über den apache letsencrypt laufen lasse und über no-ip dyndns auf meinen RasPi zugreife. Ist das dann eine sichere Verbindung oder weißt diese Methode doch Sicherheitslücken auf?

Der Verkehr von Client zu Server ist verschlüsselt. Unabhängig davon, ob da dyndns läuft, oder nicht. Ob die Methode Sicherheitlücken aufweist, hängt eher davon ab, wie du Apache konfiguriert hast.


ZitatIch habe auch das eingangs erwähnte tutorial gesehen und versucht, nur leider gibt es kaum einen Anbieter, die subdomans mit dyndns anbieten und letsencrypt unterstützen...  :(

Du kannst ja auch selbst-signierte Zertifikate verwenden. Gibt zwar eine Browser-Warnung, ändert aber nichts an der Verschlüsselung des Traffics.
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Wernieman am 31 Januar 2017, 14:12:31
Du solltest jetzt aber berücksichtigen, das Dein apache und fhem komplett aus dem Netz erreichbar ist. Ich würde Dir empfehlen, es zusätzlich mit einem Passwort zu schützen. Am besten beim apache, also so früh wie mögich
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: miosch82 am 29 August 2017, 22:35:01
Hallo,
ich bin Anfänger im Bereich FHEM.
Ich habe alles nach der Videoanleitung gemacht und nun das Problem dass ich eine Fehlermeldung beim aufrufen der Seite im Browser von extern bekomme.
Es heißt:
Proxy Error

The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /fhem.

Reason: Error reading from remote server

Was muss ich tun, damit es funktioniert?
Vielen Dank schon mal für eure Hilfe :-)
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: dtavb am 30 August 2017, 10:33:11
Hoi,
bin jetzt kein apache-Profi aber er meckert /fhem an.
Hast Du in Deiner apache-site config (File in dem Du die Umleitung zu fhem konfigurierst, müsste ja in der Vid-Anleitung erwähnt worden sein) "/fhem" als URL Aufruf definiert?
Sonst versucht apache einen Zugriff auf fhem, den dieser nicht kennt oder gar nicht reagiert (Stichwort "webname" in fhemweb-Instanz).
Grüsse
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Amenophis86 am 31 August 2017, 00:12:45
miosch wie sieht deine conf datei aus? (Passwörter aus xxxen)
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: fiedel am 31 August 2017, 04:32:51
Mal was Generelles dazu: Ich hatte mich beim Aufstzen von NGINX bewusst gegen Letsencrypt und für ein selbst signiertes Zert. entschieden.
Letsencrypt ist aufwändiger einzurichten und der Vorteil der wegfallenden Sicherheitswarnung im Browser für Seitenbesucher kommt bei einer vorwiegend selbsgenutzen Loginseite wie FHEM nicht zum Tragen. Außerdem ist das LE- Zert. zeitlich begrenzt und muss regelmäßig erneuert werden. Also Leute - macht es euch selbst...  :-X ;D
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Wernieman am 31 August 2017, 08:14:40
NEIN .. letsencrypt ist supereinfach, vor allem auch beim NGINX. Und das regelmäßige erneuern kann (und sollte man) automatisieren.
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: drhirn am 31 August 2017, 08:56:16
Erstellen neuere Versionen des LE-Clients nicht gleich automatisch einen Cron-Job? Ich kann mich nämlich nicht erinnern, einen eingerichtet zu haben.
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Wernieman am 31 August 2017, 09:06:38
Mhhh .. auf den hier vorliegenden Ubuntu-Servern jedenfalls nicht .. aber es ist trivial (=einfach) einen einzurichten.
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: andies am 31 August 2017, 10:05:18
@fiedel Was kostet das selbst generierte Zertifikat?


Gesendet von iPad mit Tapatalk Pro
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: drhirn am 31 August 2017, 10:09:21
EUR 0,00.-
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Wernieman am 31 August 2017, 11:23:00
Dafür hast DU Probleme beim Handyzugriff ....
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: dev0 am 31 August 2017, 11:34:47
Auch wenn man das CA Zertifikat importiert?
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: andies am 31 August 2017, 11:59:21
Könnt Ihr das mal näher erläutern? Beim googlen habe ich nur Preise >100€ pro Jahr gesehen.


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: dev0 am 31 August 2017, 12:31:07
Selbst signierte Zertifikate erstellt man selbst, zB. mit openssl (https://wiki.openssl.org/index.php/Manual:Openssl(1))
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Wernieman am 31 August 2017, 12:33:15
Wenn Du eine CA importierst, könne jemand mit genau der CA auch andere Zertifikate erstellen. Nicht ohne Grund warnt ein Androidhandy nach dem Import dieser CA bei JEDEM booten, das dieses Handy kompromitiert sein kann.

@andies
Siehe Web, z.B. http://wiki.nefarius.at/linux/eigenes_ssl-zertifikat_erstellen (http://wiki.nefarius.at/linux/eigenes_ssl-zertifikat_erstellen)

In Zeiten von Letsencrypt würde ich dieses Vorgehen nicht mehr empfehlen. Nicht ohne Grund wird es in Hackerkreisen als "Snakeoil" bezeichnet
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: dev0 am 31 August 2017, 14:50:37
ZitatNicht ohne Grund warnt ein Androidhandy nach dem Import dieser CA bei JEDEM booten, das dieses Handy kompromitiert sein kann.
Wenn man dieses Verhalten nicht abstellen kann, dann wird es in Konzernen mMn bald keine Adroid Mobilles mehr geben ;) Aber lass uns das nicht weiter ausführen, da hier offtopic.
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Familienpapi am 10 November 2017, 15:19:54
Habe meinen hausinternen Exchange 2010 (Small Business Server 2011 Standard) per Subdomain von selfhost laufen und LetsEncrypt funktioniert wunderbar. Warum sollen also Subdomains mit LetsEncrypt nicht funktionieren? Weder Android noch angebissener Apfel meckern beim Zugriff auf diesen Exchange via selfhost Subdomain. Sicherlich funktioniert das dann auch mit einem Apache Proxy. Ist wahrscheinlich sogar noch ein wenig sicherer als wie LetsEncrypt direkt mit FHEM verheiraten.
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Master_Nick am 29 November 2017, 23:49:12
 :o Habe ich hier nun etwas falsch verstanden?

Ich habe gerade mein FHEM von dem selbst gebastelten Zertifikat erlöst und es einfach mit 2 der Dateien vom Certbot von Letsencrypt ersetzt. Funktioniert Prima (NoIp Domain).

Hatte damals diese Anleitung genutzt: https://wiki.fhem.de/wiki/Raspberry_Pi_%26_HTTPS

Und habe nun NUR die beiden Dateien im Verzeichnis /opt/fhem/certs ausgetauscht. Die privkey.pem wird zu server-key.pem und cert.pem wird zu server-cert.pem.

Dann FHEM neu gestartet und alles war toll.
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Wernieman am 30 November 2017, 08:23:54
Dir ist aber klar, das letsencrypt "nur" 3 Monats-Zertifikate erstellt? Du solltest also den Tausch dieser automatisieren ...
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Master_Nick am 30 November 2017, 11:01:11
 ;) Exakt! Das ist zu bedenken. Aber da man eh minimum einen Server für FHEM hat einfach direkt so bauen.

Da ich es direkt so gebaut habe, dass es über einen cron in FHEM und FritzBox aktualisiert wird, muss ich nix mehr tun. Wenn man was schief läuft sagt mir mein System Bescheid per E-Mail.

Diese Automatisierung ist wirklich so einfach, dass die Verwendung eines 90 Tage gültigen Certs einen nicht abschrecken sollte.
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Master_Nick am 30 November 2017, 11:02:21
Zitat von: drhirn am 31 Januar 2017, 13:15:57
Der Verkehr von Client zu Server ist verschlüsselt. Unabhängig davon, ob da dyndns läuft, oder nicht. Ob die Methode Sicherheitlücken aufweist, hängt eher davon ab, wie du Apache konfiguriert hast.


Du kannst ja auch selbst-signierte Zertifikate verwenden. Gibt zwar eine Browser-Warnung, ändert aber nichts an der Verschlüsselung des Traffics.

Es gibt mobile Endgeräte die die arbeit mit self-signed Certs komplett verweigern - das gebe ich zu bedenken. :-) Vor allem die mittels Openssl ohne domain sind davon betroffen.


Oh sorry die Aussage war von Seite 1 - hatte hier gerade nach dem schreiben die Seite wohl angezeigt bekommen und dachte es kam nach meinem Post...
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Wernieman am 30 November 2017, 11:07:05
Zitat... in FHEM und FritzBox aktualisiert ...

Wie änderst Du das Zertifikat automatisch in der FritzBox?
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Master_Nick am 30 November 2017, 11:09:15
Mit dem Script hier: https://gist.github.com/wikrie/f1d5747a714e0a34d0582981f7cb4cfb  :)
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: ing.robby am 22 Dezember 2017, 09:29:55
Hallo zusammen,

ich habe auch, nach dem im Eröffnungspost erwähnten Video, den Zugriff aus dem Internet mit letsencrypt versucht.

Ich habe ein Problem an der Stelle
./letsencrypt-auto certonly --rsa-key-size 4096 -d *.com

Select the appropriate number [1-3] then [enter] (press 'c' to cancel): 2 Plugins selected: Authenticator standalone, Installer None Obtaining a new certificate Performing the following challenges: tls-sni-01 challenge for *.com Cleaning up challenges Problem binding to port 443: Could not bind to IPv4 or IPv6. root@robby-RasPi:/opt/letsencrypt#
Ich habe alles exakt nach dem Tutorial gemacht, eine Subdomain eingerichtet, diese ist auch per ping erreichbar. IPv4 Status ebenfals i.O. auf meiner Fritzbox. Was könnte das Problem sein?

MfG Robby
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Wernieman am 22 Dezember 2017, 13:27:54
Zitat*.com

Sorry, aber DAS steht so bestimmt nicht da .. es gehört DEINE Domain da rein"
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: ing.robby am 22 Dezember 2017, 17:00:46
Ja dort steht auch meine Domain, ist hier "ausgesternt"  :D
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Wernieman am 23 Dezember 2017, 15:50:06
Habe jetzt ekien Lust, mir as Video anzusehen. Erstmal deshalb kurz mal einige Fragen:
1. hast Du einen Webserverr laufen?
2. Wenn ja, ist er extern auf Port 80 erreichbar?

Wenn bei 2. Ja, ist es besser, den letsencrypt über den Webserver laufen zu lassen, sonst müsstest Du für die automatisierung diesen immer abschalten (Ich gehe sogar momentangenau davon aus, das dieses Dein Fehler ist. Wie  in der Fehlermeldung steht "could not bind to port" o.Ä.)

3. Mit dem Browser Testen, ob Du auf Deine Domain ins richtige Verzeichnis kommst:

Erstmal manuell einen Ordner im Web-Root anlegen:
cd <webroot>
mkdir /.well-known
date >.well-known/test.txt


Jetzt müstest Du im Browser aufrufen: http://<DeineDomain>/.well-known/test.txt
Und dort sollte das Datum/die Zeit stehen. Eventuell meckert der Browser auch wegen "Binary-Datei", das ist hier aber irrelevant. Wenn DAS läuft, könntest Du weiter mit letsencrypt testen (Schreibe ich, wenn es hier O.K. ist)
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: ing.robby am 24 Dezember 2017, 12:09:31
Hallo Wernieman,

Zitat1. hast Du einen Webserverr laufen?
Ja ich habe auf dem RasPi einen Apache2 laufen, intern 192.168.178.24, ist auch intern erreichbar unter dieser ip und auch auf dem Port 80.
Fhem läuft über dieselbe interne IP über Port 8083.

Portweiterleitung auf der Fritzbox an Port 8083 funktioniert, sprich fhem ist extern über meine Subdomain mit Port 8083 erreichbar. (Das ist natürlich so nicht gewollt, weil ich den Apache davor schalten möchte, war nur zum Testen.)

Zitat2. Wenn ja, ist er extern auf Port 80 erreichbar?
Apache2 ist extern nicht über meine Subdomain auf Port 80 erreichbar, wenn ich die Portfreigabe in der Fritzbox auf Port 80 umstelle, intern auf Port 80 schon. Dort kommt die "Startseite" (index.html).

Ich habe auch noch ein Verständnisproblem.
Sollte ich nicht von extern auf den Port 443 weiterleiten, weil dieser der https Port ist und nicht an den Port 80?

Gruß Robby
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Wernieman am 24 Dezember 2017, 18:20:04
Jetzt verstehe ich Dein Problem und s wird so nicht funktionieren.

Der letsencrypt-Client versucht sich auf Port 80 zu verbinden, was er nicht kann, da dort der apache läuft. Er wird es auch nicht auf Port 8083 Probieren, warum sollte er auch?

Würde Dir deshalb eigentlich empfehlen:
1. Mache einen Unabhängigen Webserver auf Port 80 extern erreichbar.
2. Merke Dir, wohin sein web-root zeigt (darf leer sein)
3. Starte letsencrypt mit
letsnecrypt certonly -webroot -w <Webroot>"
Hinweis: Bitte nachprüfen, kann aktuell nicht nachschauen, recherchieren. Ist aus dem Kopf geschrieben und ich glaube, dort ist noch ein "Tippfehler"!
4. Jetzt hast Du ein Zertifikat

5. Zusätzlich:
Wenn Du schon einen Webserver hast, würde ich FHEM nicht direkt erreichbar machen, sondern:
- Verwende extern port 443!!
- verwende den Apache als proxy, d.h. alles geht darüber zum FHEM, gibt hier im Forum schon diverse Anleitungen dafür!
- verwende den apache-auth für die Passwortabfrage! Mach Deinen Fhem nicht ungeschützt, ohne Passwort, aus dem Web erreichbar!!
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: ing.robby am 24 Dezember 2017, 20:52:56
Vielen Dank für die ausführliche Antwort. Ich komme auch erst morgen wieder zum Testen. Bis dahin noch frohe Weihnachten  :)

Gruß Robby
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: ing.robby am 29 Oktober 2018, 20:49:46
Hallo Wernieman,

ich habe mich dem alten Problem jetzt nochmal angenommen...

Apache2 läuft, Subdomain erreichbar, letsencrypt läuft, Portweiterleitung auf Fritzbox an Port 443. ABER:
Irgendwas scheint in den Apache Einstellungen nicht richtig zu sein.

Intern erreichbar auf interner IP 192.168.178.25:443
Extern erreichbar auf <domain>:443
Nur kommt dann nicht meine fhem Seite, sondern die php Testseite (auch wenn ich intern den Apache aufrufe).

Hier die wichtigen Configs:

000-default.conf:

<VirtualHost *:443>
ServerAdmin robby-RasPi
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>


<domain>.conf:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName <domain>

    ServerAdmin robby-RasPi
    DocumentRoot /var/www/html
    #DocumentRoot /etc/apache2/sites-available

    ErrorLog ${APACHE_LOG_DIR}/<domain>.error.log
    CustomLog ${APACHE_LOG_DIR}/<domain>.access.log combined

    SSLCertificateFile /etc/letsencrypt/live/<domain>/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/<domain>/privkey.pem

    Include /etc/letsencrypt/options-ssl-apache.conf

    ProxyRequests Off
    ProxyVia Off
    ProxyPreserveHost On

    <Location /fhem>
        ProxyPass https://192.168.178.25:8083/fhem
        ProxyPassReverse https://192.168.178.25:8083/fhem
    </Location>

    <Directory />
        RedirectPermanent / /fhem
    </Directory>

    <Proxy *>
        AuthType Basic
        AuthName "Password for FHEM Required"
        AuthUserFile /etc/fhem-htpasswd
        Require valid-user
        Order deny,allow
        Allow from all
    </Proxy>
</VirtualHost>
</IfModule>


default-ssl.conf:

<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin robby-RasPi

                DocumentRoot /var/www/html
         
           

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined       
                SSLEngine on
                SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
                SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key


/var/www/html:

-rw-r--r--  1 root     root      0 Okt 27 22:11 <domain>
-rwxrwxr-x  1 robby    root  11321 Jan 19  2017 index.html
-rw-r--r--  1 root     root     21 Okt 22 20:50 index.php
drwxr-xr-x 14 www-data root   4096 Nov 21  2017 sv
-rw-rw-r--  1 robby    robby     0 Dez 23  2017 test.txt



<domain> entspricht meiner Domain Adresse.

Irgndwo muss ich den "Verweis" auf meine Domain unterbringen. Aber wo??

Gruß Robby





Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Wernieman am 30 Oktober 2018, 08:12:46
https://httpd.apache.org/docs/2.4/mod/mod_proxy.html (https://httpd.apache.org/docs/2.4/mod/mod_proxy.html)

Gibt auch Anleitungen dazu hier im Forum .. must Du suchen.

Sorry, aber mit apache als Proxy kenne ich mich seit 3 Jahren nicht mehr aus. verwende da nur noch den nginx. Gibt aber genug Anleitungen (s.o.).
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: ing.robby am 01 November 2018, 18:39:51
Hab's hinbekommen :)

Folgende Dinge waren notwendig:

im Verzeichnis /etc/apache2/sites-available war die Datei 000-default.conf --> habe ich gelöscht (jetzt gibt es nur noch <domain>.conf)

Da ich auch in meinem Netzwerk intern über https auf fhem zugreife musste ich folgendes in meiner <domain>.conf hinzufügen:


    SSLProxyEngine on
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off


Jetzt klappt der Zugriff vom Web aus.


Was ist der Unterschied zwischen Apache2 und nginx?

Gruß Robby
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Wernieman am 01 November 2018, 20:40:05
Anderes Programm für die gleiche Aufgabe ...
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: ing.robby am 18 November 2018, 11:01:01
Hallo,

nach einem SD Card Crash musste ich nun leider wieder fhem neu einrichten. Bitte keine Sprüche bzgl. backup ect.  :-[
Nun hänge ich wieder am Thema Apache Reverse mit letsencrypt.

root@RasPi:/opt/letsencrypt# ./letsencrypt-auto certonly --rsa-key-size 4096 -d <damain>
Saving debug log to /var/log/letsencrypt/letsencrypt.log

How would you like to authenticate with the ACME CA?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Apache Web Server plugin - Beta (apache)
2: Spin up a temporary webserver (standalone)
3: Place files in webroot directory (webroot)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-3] then [enter] (press 'c' to cancel): 2
Plugins selected: Authenticator standalone, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for <domain>
Waiting for verification...
Cleaning up challenges
Failed authorization procedure. <domain> (http-01): urn:ietf:params:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching http://<domain>/.well-known/acme-challenge/GqjuxV9SY5BxBLwPqzw0zWUG_DdnhQ5SnpkNyhLlG1c: Error getting validation data

IMPORTANT NOTES:
- The following errors were reported by the server:

   Domain: <domain>
   Type:   connection
   Detail: Fetching
   http://<domain>/.well-known/acme-challenge/GqjuxV9SY5BxBLwPqzw0zWUG_DdnhQ5SnpkNyhLlG1c:
   Error getting validation data

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address. Additionally, please check that
   your computer has a publicly routable IP address and that no
   firewalls are preventing the server from communicating with the
   client. If you're using the webroot plugin, you should also verify
   that you are serving files from the webroot path you provided.


Ich habe schon unzählige Foren nach dem Fehler durchsucht, aber noch keine Lösung gefunden. Kann mir jemand helfen?

<domain> entspricht meiner Domain

Gruß Robby
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Wernieman am 18 November 2018, 11:51:06
1. Wenn Du "Stand Allone" wählst, darf KEIN anderer Webserver laufen
2. Ist Deine Domain auch wirklich die Richtige IP?
3. ist http, also Port 80 aus dem Web erreichbar?

Würde Dir allerdings besser Raten, es mit 3 "Place files in webroot directory (webroot)" zu machen. Das ist Browser unabhängiger und kann ohne den Webserver runterzufahren, laufen. Alternativ die 1.... habe aber prsöhnlich schon mal Probleme damit gehabt ...
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: ing.robby am 21 November 2018, 21:17:57
Hallo Wernieman,

ich habe es jetzt mit nginx versucht. Der Zugriff aus dem Internet funktioniert, aber wenn ich letsencrypt nutzen will, kommt der gleiche Fehler wie bei apache.

Befehl:
./letsencrypt-auto certonly -a standalone -d <domain>

Fehler:
root@RasPi:/opt/letsencrypt# ./letsencrypt-auto certonly -a standalone -d <domain>
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for <domain>
Waiting for verification...
Cleaning up challenges
Failed authorization procedure. <domain> (http-01): urn:ietf:params:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching http://<domain>/.well-known/acme-challenge/WVokj-9aMOW4jKU7nGxw68DymqPVkK9zQi7Zj-afNFU: Error getting validation data

IMPORTANT NOTES:
- The following errors were reported by the server:

   Domain: <domain>
   Type:   connection
   Detail: Fetching
   http://<domain>/.well-known/acme-challenge/WVokj-9aMOW4jKU7nGxw68DymqPVkK9zQi7Zj-afNFU:
   Error getting validation data

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address. Additionally, please check that
   your computer has a publicly routable IP address and that no
   firewalls are preventing the server from communicating with the
   client. If you're using the webroot plugin, you should also verify
   that you are serving files from the webroot path you provided.


Hängt das vielleicht damit zusammen, dass "http" steht, anstatt "https"?

Gruß Robby
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Wernieman am 22 November 2018, 09:49:49
1. Wenn Du "standalone" nutzen willst, darf apache oder nginx NICHT laufen

Siehe mein Beitrag! Bitte LESEN

Bevor wir jetzt weiterreden erstmal die Frage: Ist Dein nginx über http extern erreichbar?
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: ing.robby am 22 November 2018, 15:30:12
Hallo Wernieman,

ich habe deinen Beitrag gelesen. Apache und nginx liefen nicht während letsencrypt Installation.
Nein nginx ist nicht über http erreichbar, sondern über https, so ist es ja auch gewollt.

Gruß Robby
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Wernieman am 22 November 2018, 15:34:57
d.h. extern ist die Maschine, auf der letsencrypt läuft, NICHT über http erreichbar? Damit wird es dann wohl nichts mit letsencrypt .... denn das braucht für die Erstinstallation http ....

btw: Schau mal, was alles auf port 80 hört:
netstat -lntp | grep 80
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: ing.robby am 22 November 2018, 19:08:26
Letsencrypt läuft nicht. Scheitert ja bei der Installation.
Und meine Subdomain für fhem ist nicht unter http erreichbar.

netstat -lntp | grep 80
liefert:
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      28805/nginx: master
tcp        0      0 0.0.0.0:8083            0.0.0.0:*               LISTEN      28969/perl
tcp        0      0 0.0.0.0:8084            0.0.0.0:*               LISTEN      28969/perl
tcp        0      0 0.0.0.0:8085            0.0.0.0:*               LISTEN      28969/perl
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      28805/nginx: master


Gruß Robby
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Wernieman am 22 November 2018, 19:42:04
1. laut Deiner Ausgabe ist letsencrypt installiert
2. Deine subdomain für FHEM muß extern über http erreichbar sein .. allerdings geht es auch unter eine Dummy.

Habe bei mir im nginx einfach folgenden Eintrag drinnen:
server {
    listen      80 default_server;
    listen      [::]:80 default_server;
    server_name default_server;

    root /usr/share/nginx/html;
    index index.html index.htm;

    access_log  /var/log/nginx/default.access.log;
    error_log   /var/log/nginx/default.error.log;

    # Sicherheit
    server_tokens off;
    add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains' always;

    # Für LetsEncrypt
    location ~ /\.well-known {
        root /usr/share/nginx/html;
    }

    # Alles andere auf https://
    location / {
        try_files $uri $uri/ =404;
        return 301 https://$host$request_uri;
    }
}


Dann kannst Du ein Zertifikat erstellen (nginx muß laufen!)
letsencrypt certonly  --webroot -w /usr/share/nginx/html -d Domain1 -d Domain2 ....

Allerdings ist der Aufruf aus dem Kopf geschrieben (und man-Pages), nicht getestet. Das kann ich Dir erst morgen geben.

Dieses hat den Vorteil, das Du auch bei einem laufendem nginx ein "letsencrypt renew" machen kannst.
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: ing.robby am 22 November 2018, 20:12:50
Ja du hast Recht, installiert ist letsencrypt. Erst bei dem Befehl
./letsencrypt-auto certonly --rsa-key-size 4096 -d <domain>
Kommt die beschriebene Fehlermeldung.

letsencrypt certonly  --webroot -w /usr/share/nginx/html -d <domain>
Funktioniert auch nicht.
Ausgabe:
Failed authorization procedure. <domain> (http-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching http://<domain>/.well-known/acme-challenge/C0gOuxY98vY1zcZGQyC3dRSZQ7JRL4V9z8L6QzC1XFc: Error getting validation data

IMPORTANT NOTES:
- The following errors were reported by the server:

   Domain: <domain>
   Type:   connection
   Detail: Fetching
   http://<domain>/.well-known/acme-challenge/C0gOuxY98vY1zcZGQyC3dRSZQ7JRL4V9z8L6QzC1XFc:
   Error getting validation data

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address. Additionally, please check that
   your computer has a publicly routable IP address and that no
   firewalls are preventing the server from communicating with the
   client. If you're using the webroot plugin, you should also verify
   that you are serving files from the webroot path you provided.
- Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.


Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Wernieman am 22 November 2018, 20:18:51
Prüfe erstmal, ob Deine Domain auch extern erreichbar ist (http!!)
Dann ... können wir weitermachen.

Siehe Ausgabe:
The server could not connect to the client to verify the domain :: Fetching http://<domain>/.well-known/acme-challenge/C0gOuxY98vY1zcZGQyC3dRSZQ7JRL4V9z8L6QzC1XFc:
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: ing.robby am 22 November 2018, 20:32:40
Nein ist sie nicht. Ist nur über https erreichbar, hatte ich schon geschrieben.
Verstehe auch nicht, warum sie über http erreichbar sein soll. Will ja verwchlüsselt darauf zugreifen...

Oder ist das für die Einrichtung von letsencrypt erforderlich? Und ich stelle das später um?
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Wernieman am 22 November 2018, 22:06:24
Für https brauchst Du ein Zertifikat, was Du nicht hast. Um eines aufzubauen, willst Du aber über https gehen, wofür Du kein Zertiikat hast, da Du kein https ...... Es ist ein Henne Ei Problem!

Also ... ohne http geht es nicht.

Punkt (s.o. und lets-Ecnrypt-Doku)

Und wie Du es umstellst, siehe mein nginx-Auszug.

Und fürs dauerhafte würde ich Dir auch empfehlen, http laufen zu lassen. Letsencrypt-zertifikate haben eine Lebensdauer von 3 Monaten. Man kann Sie aber automatisch verlängern lassen (letsencrypt renew).

Also mal in Steps:
1. http Einrichten!
2. Externe Erreichbarkeit von http prüfen
3. letsencrypt laufen lassen
4. nginx mit https erweitern
5. externe Erreichbarkeit von htps prüfen
6. Sich freuen!

Sorry aber das sind Basics. Bitte lesedir mal die Letsencrypt Doku durch! Und das mit http habe ich schon 3? mal geschrieben ....
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: mahowi am 03 März 2020, 20:00:35
Auch, wenn das Thema schon etwas älter ist, vielleicht sucht ja noch jemand danach, wie er FHEM mit Letsencrypt-Zertifikat nutzt ohne einen Webserver.
Man kann in /etc/letsencrypt/renewal-hooks/post Skripte anlegen, die nach dem Renewal ausgeführt werden. Da ich das Zertifikat auf einem anderen Pi installiert habe, kopiere ich es in dem Skript fhem-cert-update.sh per scp ins FHEM-Verzeichnis:

#!/bin/bash

# parameters
USERNAME="fhem"
CERTPATH="/etc/letsencrypt/live/fhem.example.org/"
HOST="fhem"

scp $CERTPATH/cert.pem $USERNAME@$HOST:/opt/fhem/certs/server-cert.pem
scp $CERTPATH/privkey.pem $USERNAME@$HOST:/opt/fhem/certs/server-key.pem


Lokal kann man natürlich auch cp nutzen. Auf die Art kopiere ich mir das Zertifikat nach dem Renewal automatisch in FHEM und auf die Fritzbox.
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: mfeske am 10 September 2021, 15:44:28
Hallo mahowi,

ich habe gesucht und hier gefunden ;-)
Ich erzeuge bei meinem Webhosting anbieter ein LE auf dem Webserver und kopiere es automatisch in die Fritz!Box. Soweit so gut. Hast Du eine Idee, wie ich das Zertifikat auch für FHEM nutzen könnte ? Muss ich das per scp einfach vom Webserver runterkopieren ? aber wohin ?

Gruß
Micha
Titel: Antw:SSL Verbindung zu Fhem mit Letsencrypt
Beitrag von: Wernieman am 10 September 2021, 16:31:16
Wie kopierst Du das Zertifikat automatisch auf die fritte?