FHEMWEB - SSL - TLD Zertifikat

Begonnen von Fire, 08 November 2014, 23:45:23

Vorheriges Thema - Nächstes Thema

Fire

Hallo,

ich hab bei meinem Fhem SSL aktiviert, und dazu noch ein SSL Zertifikat gepackt. Soweit funktioniert auch alles, d.h. wenn ich mit Chrome drauf gehe dann zeigt er mir eine gesicherte Verbindung an.

Wenn ich nun aber mit meinem Android Tablet drauf gehe kommt der Fehler "NET:ERR_CERT_AUTHORITY_INVALID". Da hab ich einfach mal den Support meines SSL Lieferanten angeschrieben und die haben gesagt ich muss alle anderen Zertifikate auch einfügen.

Man hat ja einen private Key (den man selbst erzeugt) ->server-key.pem und bekommt einen Public von Lieferanten (server-cert.pem). Scheinbar muss man aber eine "chain of trust" aufbauen, damit auch vorsichtigere Geräte (in dem Fall mein Android Device) dem Zertifikat vertrauen.

Hier steht wie das geht: https://support.comodo.com/index.php?/Default/Knowledgebase/Article/View/643/17/

allerdings mag FHEMWEB dieses kombinierte Teil nicht und bringt einen SSL Fehler im Log "HEMWEB SSL/HTTPS error: "

Wird diese Funktion nicht unterstützt? und falls doch, wie muss ich vorgehen?

Danke!

Grüße
Flo

Edit: In Apache2 gibts dafür 3 Parameter

SSLCertificateFile ./yourdomain.crt
SSLCertificateKeyFile ./yourdomain.pem
SSLCertificateChainFile ./yourdomain.ca-bundle


rudolfkoenig

FHEM verwendet fuer SSL das Perl-Paket IO::Socket::SSL (in FHEM/TcpServerUtils.pm/TcpServer_Accept), und setzt die Parameter SSL_key_file und SSL_cert_file. Lies bitte die doku durch (z.Bsp. via perldoc IO::Socket::SSL) und probier es aus, welcher der Parameter dein Problem loest (ich vermute SSL_ca_file), dann baue ich das ein.

betateilchen

Bei mir läuft das problemlos und völlig ohne irgendwelche Klimmzüge in der jetzigen Version.

Eine keychain an sich ist ja nichts weiter als eine Datei, in der alle benötigten Zertifikatsinhalte in der richtigen Reihenfolge hintereinander stehen.

Dein Tablet läuft nicht zufällig unter Android 4.4.x ? Da hab ich die Zertifikatsgeschichten in Webbrowsern bisher auch nicht zum Laufen gebracht - nicht nur in fhem nicht! War für mich ein Grund zum Downgrade auf 4.3 wo alles funktioniert.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Fire

Hi, genau, mein Tablet läuft unter 4.4.4 :) und mit exakt so einer key-chain kann man das zum laufen bekommen (hab es mit einem Apache2 Server getestet). Wichtig sind noch die anderen Zertifikate vom Anbieter.

betateilchen

Zum Thema Apache:

Ab Version 2.4.8 gibt es den Parameter SSLCertificateChainFile nicht mehr.

http://httpd.apache.org/docs/current/mod/mod_ssl.html#sslcertificatechainfile

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

herrmannj

Hi,

unter nginx muss man die Certifikate, entweder beginnend von der CA oder, wenn dem browser bekannt, einen drunter in eine Datei kopieren, also einfach aneinander hängen (ich vermute das apache das dann neuerdings analog dazu benötigt)

ssllabs.com bietet unter "projects" einen ssl server Test an, der hat sich für mich als gute Hilfe zum optimieren erwiesen, die zeigen sehr detailliert an ob/wo es hängen kann.

hoffe das hilft. Das thema brauch ich auch bald, feedback wäre gut. (Danke)

vg
jörg

Fire

ok, habs geschafft, war dann doch einfacher als gedacht :) hatte Anfangs was in den perl Dateien verändert, war aber gar nicht nötig.

Die Lösung: Alle Zertifikate in eine Datei Speichern (server-cert.pem). Reihenfolge: eigenes Zertifikat -> mögliche Zwischenzertifikate -> root-Zertifikat

So siehts dann aus ..
Chrome Desktop
(http://image.bayimg.com/56d1cbb734c54803030b14fc9aa7fbe926239d7d.jpg)

Firefox Desktop
(http://image.bayimg.com/dfad430fa6c32348ec64494f51788a6f5c2baefb.jpg)

Chome Mobile
(http://image.bayimg.com/cbe78865ec8dd78d1edb80e0be8899c4e91d1a15.jpg)
(http://image.bayimg.com/67d4eb776d5a3434bf624f7be317cdb8fcb975ea.jpg)

herrmannj

super!

betateilchen hatte mir schon Angst gemacht...

Den root brauchst Du afaik nicht. Entweder ist sie im browser schon trusted (sollte in Deinem Fall so sein). Oder bei eigener ca sollte man der ca im browser das Vertrauen aussprechen. Würde ja keinen Sinn machen wenn der browser die root anhand des certs verifiziert  ;). Soweit ich weiß meckert das aber kein browser an.

vg
jörg