Hostname vorgeben, damit Jameica diesen bei der Generierung des SSL Zertifikats einbezieht

 
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 21
Dabei seit: 01 / 2019
Betreff:

Hostname vorgeben, damit Jameica diesen bei der Generierung des SSL Zertifikats einbezieht

 · 
Gepostet: 08.01.2019 - 17:30 Uhr  ·  #1
Wenn hibiscus-server in einem Docker Container ausgeführt wird, dann ist der hostname z.B. "8a1db7935cc4". Wenn dann der hibiscus-server an einen Port des docker-host gebunden wird (z.B. "-p 8080:8080"), dann ist das WebFronend dann z.B. unter https://hibiscus-server.fritz.box:8080/webadmin/ erreichbar. Dann wäre der richtige Hostname für das SSL Zertifikat z.B. "hibiscus-server.fritz.box".

Aktuell würde das Zertifikat wie folgt erzeugt:
Code
[Tue Jan 06 11:38:06 GMT 2019][INFO][main][de.willuhn.jameica.security.SSLFactory.init] init ssl factory
[Tue Jan 06 11:38:06 GMT 2019][INFO][main][de.willuhn.jameica.security.SSLFactory.init] no ssl certificates found, creating...
[Tue Jan 06 11:38:06 GMT 2019][INFO][main][de.willuhn.jameica.security.SSLFactory.init]   generating rsa keypair
[Tue Jan 06 11:38:07 GMT 2019][INFO][main][de.willuhn.jameica.security.SSLFactory.init]   generating selfsigned x.509 certificate
[Tue Jan 06 11:38:07 GMT 2019][INFO][main][de.willuhn.jameica.security.SSLFactory.init]   using hostname: 8a1db7935cc4
[Tue Jan 06 11:38:07 GMT 2019][INFO][main][de.willuhn.jameica.security.SSLFactory.init]   creating keystore


Aktuell führt so eine HTTPS-Anfrage an https://hibiscus-server.fritz.box:8080/webadmin zu einer Fehlermeldung im Browser (hier z.B. im Firefox Quantum 64.0 64-bit auf Windows 10)

Zitat
Fehler: Gesicherte Verbindung fehlgeschlagen

Beim Verbinden mit hibiscus-server.fritz.box:8085 trat ein Fehler auf. SSL hat einen Eintrag erhalten, der die maximal erlaubte Länge überschritten hat. Fehlercode: SSL_ERROR_RX_RECORD_TOO_LONG

Die Website kann nicht angezeigt werden, da die Authentizität der erhaltenen Daten nicht verifiziert werden konnte.
Kontaktieren Sie bitte den Inhaber der Website, um ihn über dieses Problem zu informieren.

Weitere Informationen…

Fehler an Mozilla melden, um beim Identifizieren und Blockieren böswilliger Websites zu helfen


Zeitgleich taucht im hibiscus-server log folgende Meldung auf:
Code
[Tue Jan 06 15:05:39 GMT 2019][WARN][qtp969738634-36][org.eclipse.jetty.http.HttpParser$IllegalCharacterException.<init>] Illegal character 0x16 in state=START for buffer HeapByteBuffer@22b2466d[p=1,l=517,c=8192,r=516]={\x16<<<\x03\x01\x02\x00\x01\x00\x01\xFc\x03\x03\xFa\xA8\xB3\x94 4\\...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[Tue Jan 08 15:05:39 GMT 2019][WARN][qtp969738634-36][org.eclipse.jetty.http.HttpParser.parseNext] bad HTTP parsed: 400 Illegal character 0x16 for HttpChannelOverHttp@561dfc3e{r=0,c=false,a=IDLE,uri=null}



jameica-linux.jar kennt aber nur die folgenden Optionen:

Code
usage: jameica.sh|jameica-*.exe|jameica-*.sh <Optionen>

Optionen
 -c,--client               Startet die Anwendung im Client-Mode mit
                           Benutzeroberfl?che
 -d,--server               Startet die Anwendung im Server-Mode ohne
                           Benutzeroberfl?che.
 -f,--file <arg>           Optionale Angabe des Benutzer-Verzeichnisses
                           (Workdir)
 -h,--help                 Gibt diesen Hilfe-Text aus
 -l,--ignore-lock          Ignoriert eine ggf. vorhandene Lock-Datei
 -n,--noninteractive       Koppelt Jameica im Server-Mode von der Konsole
                           ab. Es findet keine Benutzer-Interaktion mehr
                           statt. Die Option wird nur ausgewertet, wenn
                           Jameica im Server-Mode l?uft.
 -o,--force-password       Angabe des Master-Passworts via Kommandozeile
                           ignorieren (f?r MacOS n?tig)
 -p,--password <arg>       Optionale Angabe des Master-Passworts
 -s,--standalone           Startet die Anwendung im Standalone-Mode mit
                           Benutzeroberfl?che (Default)
 -u,--username <arg>       Optionale Angabe des Benutzernamens
 -w,--passwordfile <arg>   Optionale Angabe des Master-Passworts, welches
                           sich in der angegebenen Datei befindet


Könnten Sie noch eine Option "--hostname" hinzufügen (oder in einer Properties Datei) und diese bei der Generierung des SSL Zertifikats bevorzugt verwenden ?
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 6613
Dabei seit: 03 / 2005
Betreff:

Re: Hostname vorgeben, damit Jameica diesen bei der Generierung des SSL Zertifikats einbezieht

 · 
Gepostet: 09.01.2019 - 08:52 Uhr  ·  #2
Der zu verwendende Hostname konnte auch bisher bereits per Konfigurationsdatei vorgegeben werden. Allerdings kam diese Option nur dann zum Zug, wenn die automatische Ermittlung fehlschlug (auf manchen Systemen fuehrte das in der Tat zu einem Fehler). Habe die Prioritaet jetzt geaendert. Wenn in der Konfigurationsdatei 'de.willuhn.jameica.system.ApplicationCallback.properties' ein Parameter "jameica.hostname=<wert>" definiert ist, wird dieser fuer die Erstellung des System-Zertifikats verwendet. Ist ab morgen im Nightly-Build.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 21
Dabei seit: 01 / 2019
Betreff:

Re: Hostname vorgeben, damit Jameica diesen bei der Generierung des SSL Zertifikats einbezieht

 · 
Gepostet: 09.01.2019 - 15:56 Uhr  ·  #3
Hi, dass ist super - werde ich morgen testen. mit:
Code
jameica.hostname=hibiscus-server.fritz.box

also einem FQDN, statt nur einem Hostname - ich hoffe das klappt.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 21
Dabei seit: 01 / 2019
Betreff:

Re: Hostname vorgeben, damit Jameica diesen bei der Generierung des SSL Zertifikats einbezieht

 · 
Gepostet: 10.01.2019 - 13:31 Uhr  ·  #4
Das log bzgl. Zertifikat sieht nun gut aus:

Code
[Thu Jan 10 11:22:35 GMT 2019][INFO][main][de.willuhn.jameica.security.SSLFactory.init] init ssl factory
[Thu Jan 10 11:22:35 GMT 2019][INFO][main][de.willuhn.jameica.security.SSLFactory.init] no ssl certificates found, creating...
[Thu Jan 10 13:22:35 GMT 2019][INFO][main][de.willuhn.jameica.security.SSLFactory.init]   generating rsa keypair
[Thu Jan 10 13:22:36 GMT 2019][INFO][main][de.willuhn.jameica.security.SSLFactory.init]   generating selfsigned x.509 certificate
[Thu Jan 10 13:22:36 GMT 2019][INFO][main][de.willuhn.jameica.system.AbstractApplicationCallback.getHostname] using manually configured hostname: hibiscus-server.fritz.box
[Thu Jan 10 13:22:36 GMT 2019][INFO][main][de.willuhn.jameica.security.SSLFactory.init]   using hostname: hibiscus-server.fritz.box
[Thu Jan 10 13:22:36 GMT 2019][INFO][main][de.willuhn.jameica.security.SSLFactory.init]   creating keystore


O.g. Fehlermeldung bleibt jedoch:
Code

[Thu Jan 10 31:24:00 GMT 2019][WARN][qtp1410398542-37][org.eclipse.jetty.http.HttpParser$IllegalCharacterException.<init>] Illegal character 0x16 in state=START for buffer HeapByteBuffer@19646504[p=1,l=517,c=8192,r=516]={\x16<<<\x03\x01\x02\x00\x01\x00\x01\xFc\x03\x03kS\xB5\xBe\x88\xD2\xAf...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[Thu Jan 10 11:24:00 GMT 2019][WARN][qtp1410398542-37][org.eclipse.jetty.http.HttpParser.parseNext] bad HTTP parsed: 400 Illegal character 0x16 for HttpChannelOverHttp@6d70b5c8{r=0,c=false,a=IDLE,uri=null}


Es werden zwar standardmäßig Zertifikate erzeugt aber nicht standardmäßig genutzt.
Laut https://bugs.eclipse.org/bugs/show_bug.cgi?id=471081 heißt das, dass der hibiscus-server auf Port 8080 nicht im HTTPS modus sondern im HTTP modus ist.

Da der Server auch keine anderen Ports aufgemacht hat (im docker container) gehe ich davon aus, dass auf 8080 HTTPS ausgeliefert werden soll:
Code

/ $ netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 127.0.0.1:44965         0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN


Eigentlich müsste laut: hibiscus-server/cfg/de.willuhn.jameica.webadmin.Plugin.properties SSL / TLS / HTTPS aktiv sein:
Code

# Entferne bei den folgenden beiden Zeilen das Kommentar-Zeichen
# "#" und passe die Werte an, wenn Du abweichende Einstellungen
# benoetigst.
# listener.http.address=127.0.0.1
# listener.http.port=8080

listener.http.auth=true
listener.http.ssl=true

so steht es im ZIP (nightly) und steht auch so in meinem Docker image.

Es wurde aber offensichtlich beim starten des Servers geändert in:
Code

$ cat /hibiscus-server/cfg/de.willuhn.jameica.webadmin.Plugin.properties
listener.http.address=0.0.0.0
listener.http.port=8080
listener.http.auth=true


Zeitstempel hat sich durch den Start geändert:
Code

ls -al /hibiscus-server/cfg/
total 40
drwxr-xr-x    2 appuser  appgroup      4096 Jan 10 12:20 .
drwxr-xr-x    7 appuser  appgroup      4096 Jan 10 12:20 ..
-rw-r--r--    1 appuser  appgroup        77 Jan 10 12:17 de.willuhn.jameica.hbci.HBCI.properties
-rw-r--r--    1 appuser  appgroup       261 Jan 10 12:17 de.willuhn.jameica.hbci.rmi.HBCIDBService.properties.bak
-rw-r--r--    1 appuser  appgroup        45 Jan 10 12:17 de.willuhn.jameica.hbci.xmlrpc.Plugin.properties
-rw-r--r--    1 appuser  appgroup        19 Jan 10 12:17 de.willuhn.jameica.services.UpdateService.properties
-rw-r--r--    1 appuser  appgroup        38 Jan 10 12:17 de.willuhn.jameica.system.ApplicationCallback.properties
-rw-r--r--    1 appuser  appgroup        39 Jan 10 12:17 de.willuhn.jameica.system.Config.properties
-rw-r--r--    1 appuser  appgroup       102 Jan 10 12:20 de.willuhn.jameica.webadmin.Plugin.properties
-rw-r--r--    1 appuser  appgroup       503 Jan 10 12:17 de.willuhn.jameica.xmlrpc.Plugin.properties


Leider habe ich außer https://www.willuhn.de/products/hibiscus-server/install.php keine Dokumentation zum hibiscus-server gefunden. Wo finde ich die Dokumentation zu Hibiscus-Server?

Welche Schritte sind notwendig um den Hibiscus-Server via HTTPS erreichen zu können?
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 6613
Dabei seit: 03 / 2005
Betreff:

Re: Hostname vorgeben, damit Jameica diesen bei der Generierung des SSL Zertifikats einbezieht

 · 
Gepostet: 10.01.2019 - 13:42 Uhr  ·  #5
Der Hibiscus-Server macht per Default HTTPS. Es sei denn, es wird deaktiviert. Die Fehlermeldung im Log erscheint, wenn man versucht, per HTTP auf den Server zuzugreife.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 21
Dabei seit: 01 / 2019
Betreff:

Re: Hostname vorgeben, damit Jameica diesen bei der Generierung des SSL Zertifikats einbezieht

 · 
Gepostet: 10.01.2019 - 15:55 Uhr  ·  #6
Verantwortlich war ein wrapper Skript. Die betreffenden Zeilen waren mir beim Review zunächst nicht aufgefallen. Danke für den Hinweis.
Gewählte Zitate für Mehrfachzitierung:   0