[5.5.3] Updater - Server nicht erreichbar

Hier schreibt ihr bitte Fehler rein, die ihr gefunden habt.
Wenn möglich mit einer genauen Beschreibung, was ihr gemacht habt und wie der Fehler aussieht.
Bitte hier nur Fehler melden, die in einer 5er-Version aufgetreten sind.

Moderatoren: Raskir, little.yoda, Zafnir, teclis2000, hades-hl, Gorbalad, Twister1982, Eclipse404

Forumsregeln
Bitte beachtet unsere Anmerkungen zum Bugreporting, bevor ihr neue Beiträge schreibt
Antworten
Rothen
Möchtegern-Held -- (Höhlenkundig 2)
Beiträge: 20
Registriert: 23. Aug 2012, 20:48

[5.5.3] Updater - Server nicht erreichbar

Beitrag von Rothen » 19. Jul 2018, 03:21

Hallo,
die Update-Funktion der Helden-Software kann sich momentan nicht mit dem Update-Server verbinden (Einstellungen => Updater => Jetzt updaten gibt ein "Der Server ist leider nicht erreichbar").

Der Update-Server selber funktioniert. Das Problem ist, dass der Server wohl auf SSL-only umgestellt wurde ( :2thumbs: ), die Helden-Software damit aber nicht klarkommt. In helden.comm.CommUtilities ist immer noch "http://helden-software.de/update/" angegeben, was auf die neue https-Adresse (https://www.helden-software.de/update/) weiterleitet. Dummerweise kann URL.openConnection() nicht mit Weiterleitungen umgehen, und der UpdaterDownloader versucht deshalb den Content des Redirects zu parsen.

Fun Fact: Die HTTPS-Version des Update-Servers gibt weiterhin HTTP-Download-Links raus...

Falls ihr den Updater auf HTTPS umstellen wollt, werden die User älterer (= nicht brandneuer) Java-Versionen Probleme bekommen:
  • Euer Server hat ein Zertifikat von Let's Encrypt. Dessen Root-CA ist in (Oracle-)Java noch nicht lange drin - seit Java 8u101 bzw. 7u111. Das hab ich (für mein Plugin) gefixt, indem ich die Root-CA direkt im Plugin mitliefere und bei Programmstart installiere.
  • Java hat Probleme mit großen DH-Parametern (neuere Versionen können 2048 bit, alte nur 1024 bit). Dummerweise sind 2048 und 4096 bit mittlerweile Standard. Mein Fix ist es, DH in TLS-Verbindungen komplett zu verbieten (und damit neue Java-Versionen zu ECDHE zu zwingen, während man bei alten Versionen evtl. Forward Secrecy verliert). Nicht perfekt, aber funktioniert für meine Server.
Falls ihr Interesse an meiner Lösung für Java's TLS-Probleme habt: bedient euch.

Viele Grüße
Markus

Antworten