From 85dfd7d6ee3bcf15d0cbabe902e1a5a5427d6754 Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sun, 14 Oct 2018 12:57:06 +0000 Subject: [PATCH] TcpServerUtils.pm: add sslCertPrefix option (Forum #92030) git-svn-id: https://svn.fhem.de/fhem/trunk@17529 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/00_MQTT2_SERVER.pm | 15 +++++++++++++-- fhem/FHEM/01_FHEMWEB.pm | 15 ++++++++++++++- fhem/FHEM/98_telnet.pm | 28 +++++++++++++++++++++++++--- fhem/FHEM/TcpServerUtils.pm | 5 +++-- 4 files changed, 55 insertions(+), 8 deletions(-) diff --git a/fhem/FHEM/00_MQTT2_SERVER.pm b/fhem/FHEM/00_MQTT2_SERVER.pm index fae85961d..f1f00eb79 100644 --- a/fhem/FHEM/00_MQTT2_SERVER.pm +++ b/fhem/FHEM/00_MQTT2_SERVER.pm @@ -36,11 +36,13 @@ MQTT2_SERVER_Initialize($) no warnings 'qw'; my @attrList = qw( + SSL:0,1 + autocreate disable:0,1 disabledForIntervals - autocreate rawEvents - SSL:0,1 + sslVersion + sslCertPrefix ); use warnings 'qw'; $hash->{AttrList} = join(" ", @attrList); @@ -580,6 +582,15 @@ MQTT2_SERVER_getStr($$) Enable SSL (i.e. TLS)
+
  • sslVersion
    + See the global attribute sslVersion. +

  • + +
  • sslCertPrefix
    + Set the prefix for the SSL certificate, default is certs/server-, see + also the SSL attribute. +

  • +
  • autocreate
    If set, MQTT2_DEVICES will be automatically created upon receiving an diff --git a/fhem/FHEM/01_FHEMWEB.pm b/fhem/FHEM/01_FHEMWEB.pm index 5b6fa5d17..1be6e94d4 100644 --- a/fhem/FHEM/01_FHEMWEB.pm +++ b/fhem/FHEM/01_FHEMWEB.pm @@ -187,9 +187,10 @@ FHEMWEB_Initialize($) refresh reverseLogs:0,1 roomIcons - sortRooms showUsedFiles:0,1 + sortRooms sslVersion + sslCertPrefix smallscreen:unused smallscreenCommands:0,1 stylesheetPrefix @@ -3911,6 +3912,12 @@ FW_widgetOverride($$) See the global attribute sslVersion.

  • + +
  • sslCertPrefix
    + Set the prefix for the SSL certificate, default is certs/server-, see + also the HTTPS attribute. +

  • +
  • styleData
    data-storage used by dynamic styles like f18 @@ -4613,6 +4620,12 @@ FW_widgetOverride($$) Siehe das global Attribut sslVersion.

  • + +
  • sslCertPrefix
    + Setzt das Präfix der SSL-Zertifikate, die Voreinstellung ist + certs/server-, siehe auch das HTTP Attribut. +

  • +
  • styleData
    wird von dynamischen styles wie f18 werwendet diff --git a/fhem/FHEM/98_telnet.pm b/fhem/FHEM/98_telnet.pm index 3b4f0703b..20c3a75fd 100644 --- a/fhem/FHEM/98_telnet.pm +++ b/fhem/FHEM/98_telnet.pm @@ -20,9 +20,22 @@ telnet_Initialize($) $hash->{AsyncOutputFn} = "telnet_Output"; $hash->{UndefFn} = "telnet_Undef"; $hash->{AttrFn} = "telnet_Attr"; - $hash->{AttrList} = "globalpassword password prompt allowedCommands ". - "allowfrom SSL connectTimeout connectInterval ". - "encoding:utf8,latin1 sslVersion"; + no warnings 'qw'; + my @attrList = qw( + SSL + allowedCommands + allowfrom + connectInterval + connectTimeout + encoding:utf8,latin1 + globalpassword + password + prompt + sslCertPrefix + sslVersion + ); + use warnings 'qw'; + $hash->{AttrList} = join(" ", @attrList); $hash->{ActivateInformFn} = "telnet_ActivateInform"; $hash->{CanAuthenticate} = 2; @@ -514,6 +527,10 @@ telnet_ActivateInform($)
  • sslVersion
    See the global attribute sslVersion.

  • +
  • sslCertPrefix
    + Set the prefix for the SSL certificate, default is certs/server-, see + also the SSL attribute. +

  • @@ -656,6 +673,11 @@ telnet_ActivateInform($) Siehe das global Attribut sslVersion.
    +
  • sslCertPrefix
    + Setzt das Präfix der SSL-Zertifikate, die Voreinstellung ist + certs/server-, siehe auch das SSL Attribut. +

  • + diff --git a/fhem/FHEM/TcpServerUtils.pm b/fhem/FHEM/TcpServerUtils.pm index 467335b2e..c03bfa352 100644 --- a/fhem/FHEM/TcpServerUtils.pm +++ b/fhem/FHEM/TcpServerUtils.pm @@ -111,12 +111,13 @@ TcpServer_Accept($$) # Certs directory must be in the modpath, i.e. at the same level as the # FHEM directory my $mp = AttrVal("global", "modpath", "."); + my $certPrefix = AttrVal($name, "sslCertPrefix", "certs/server-"); my $ret; eval { $ret = IO::Socket::SSL->start_SSL($clientinfo[0], { SSL_server => 1, - SSL_key_file => "$mp/certs/server-key.pem", - SSL_cert_file => "$mp/certs/server-cert.pem", + SSL_key_file => "$mp/${certPrefix}key.pem", + SSL_cert_file => "$mp/${certPrefix}cert.pem", SSL_version => $sslVersion, SSL_cipher_list => 'HIGH:!RC4:!eNULL:!aNULL', Timeout => 4,