FHEM Forum

FHEM => Sonstiges => Thema gestartet von: zYloriC am 18 September 2014, 14:14:40

Titel: FHEM SSL-Client-Zertifikat ohne Apache
Beitrag von: zYloriC am 18 September 2014, 14:14:40
Hallo zusammen,
ich würde den Zugriff auf mein Raspberry-fhem gerne per Zertifikat absichern. Dazu habe ich mich mit dem bekannten Link befasst: https://gist.github.com/gbirke/8608543

Meine Frage ist nun, ob solche Zertifikate auch ohne die zusätzliche Installation von Apache möglich ist.
Die fhem-Oberfläche läuft ja bereits auf einem Webserver, den fhem bereitstellt. Kann man für diesen auch die Lösung mit den Zertifikaten adaptieren?
Ich möchte einen SSL-Cert-Apache vermeiden um Ressourcen zu sparen.

Gruß, zYloriC
Titel: Antw:FHEM SSL-Client-Zertifikat ohne Apache
Beitrag von: rudolfkoenig am 18 September 2014, 14:41:47
FHEMWEB fuehrt z.Zt. keine Client-Zertifikat-Pruefung durch.
Programmieren kann man es bestimmt.
Titel: Antw:FHEM SSL-Client-Zertifikat ohne Apache
Beitrag von: betateilchen am 18 September 2014, 15:31:04
Ich hab mich mit dem Thema schon länger befasst. Ja, man könnte es programmieren. Aber der Aufwand steht für mich in keiner Relation zum Nutzen, zumal mit einem Apache als ReverseProxy eine gute Lösung bereits existiert. Auf dem Raspberry sehe ich durch den Einsatz eines Apache grundsätzlich keine Ressourcenprobleme, das funktioniert bei mir seit längerem völlig störungsfrei.

Um eine SSL Prüfung in fhem umzusetzen, werden eine ganze Reihe weiterer perl-Module benötigt, was der Performance auch nicht sonderlich zuträglich ist. Ausserdem ist der "Webserver" in fhem ohnehin nicht der performanteste, was man an regelmäßigen "SSL Fehlern" erkennt, die alleine schon dann passieren, wenn man den lokalen Zugriff auf fhem per https anstatt http aktiviert hat.
Titel: Antw:FHEM SSL-Client-Zertifikat ohne Apache
Beitrag von: zYloriC am 18 September 2014, 17:38:29
ok. Super vielen Dank an die schnelle Hilfe von euch beiden Experten. Ich werde mich an den Apache ran-machen ;)
Titel: Antw:FHEM SSL-Client-Zertifikat mit Apache
Beitrag von: betateilchen am 19 September 2014, 13:25:15
Zitat von: zYloriC am 18 September 2014, 17:38:29
Ich werde mich an den Apache ran-machen

Falls es Dir weiterhilft, will ich Dir kurz beschreiben, wie ich das gelöst habe. Ziel war, beim Aufruf von fhem.betateilchen.de


In meiner Apache Konfiguration gibt es eine vhost-Definition für den fhem-Bereich:


<VirtualHost *:443>
  ServerName fhem.betateilchen.de
  SSLEngine on
  SSLCertificateFile      /etc/ssl/certs/fhem_betateilchen_de.crt
  SSLCertificateKeyFile   /etc/ssl/private/server.key
  SSLCertificateChainFile /etc/ssl/certs/fhem_betateilchen_de.ca-bundle
  SSLCACertificateFile /etc/ssl/certs/cacert.pem
  SSLVerifyClient require
  SSLVerifyDepth 1
  ProxyPass        /  http://localhost:8083/fhem
  ProxyPassReverse /  http://localhost:8083/fhem
</VirtualHost>

<Proxy *>
  Allow from 127.0.0.1
</Proxy>


Dies Definition besteht aus vier Teilen.


Wenn ich nun versuche, die Webseite fhem.betateilchen.de aufzurufen, werde ich von Google Chrome zuerst aufgefordert, ein Client-Zertifikat für die Anmeldung auszuwählen:

(http://up.picr.de/19563871zg.jpg)

Danach wird die Verbindung zu fhem hergestellt und automatisch per SSL (erkennbar an https in der URL Zeile) an meinen Browser ausgeliefert:

(http://up.picr.de/19563872tg.png)

Die Automatische SSL Auslieferung erfolgt über eine Rewrite Regel in meiner zentralen Apache Konfiguration:


<VirtualHost *:80>
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
  DocumentRoot /var/www/
</VirtualHost>


Damit werden alle auf Port 80 ankommenden Requests automatisch in eine https-URL umgeschrieben und an den Apache übergeben.
Titel: Antw:FHEM SSL-Client-Zertifikat ohne Apache
Beitrag von: Alcamar am 14 Mai 2015, 15:35:39
sollte nginx nicht auch eine Alternative sein, die keine große Auswirkung auf die Performance hat?