GravitLauncher / Launcher

Улучшеный Minecraft лаунчер на основе sashok's742 v3
https://gravitlauncher.com
GNU General Public License v3.0
132 stars 105 forks source link

jre271 windows 10 x64: LauncherEngine not signed #417

Closed tabr closed 4 years ago

tabr commented 4 years ago

На 261й(и более ранних) джаве всё работает нормально. Ставлю 271ю(последнюю на текущий момент). Клиентский лаунчер не стартует (ни exe ни jar).

java -Dlauncher.debug=true -jar Launcher.jar

GravitLauncher (fork sashok724's Launcher) Launcher v5.1.8-1 stable License for Launcher GPLv3. SourceCode: https://github.com/GravitLauncher/Launcher 2020.10.28 11:06:10 [DEBUG] Testing stacktrace 2020.10.28 11:06:10 [DEBUG] Verifying class loader 2020.10.28 11:06:10 [DEBUG] Verifying JVM architecture 2020.10.28 11:06:10 [ERROR] java.lang.SecurityException: Class pro.gravit.launcher.client.JavaRuntimeModule not signed 2020.10.28 11:06:10 [INFO] Launcher for project TacticsCraft 2020.10.28 11:06:10 [INFO] If need debug output use -Dlauncher.debug=true 2020.10.28 11:06:10 [INFO] If need stacktrace output use -Dlauncher.stacktrace=true 2020.10.28 11:06:10 [INFO] Restart Launcher with JavaAgent... 2020.10.28 11:06:10 [DEBUG] Check Java in C:\Program Files\Java 2020.10.28 11:06:10 [DEBUG] Found Java 8 in C:\Program Files\Java\jre1.8.0_271 (javafx true) 2020.10.28 11:06:10 [DEBUG] Selected Java 8 in C:\Program Files\Java\jre1.8.0_271 (javafx true) 2020.10.28 11:06:10 [DEBUG] Commandline: [C:\Program Files\Java\jre1.8.0_271\bin\java.exe, -Dlauncher.debug=true, -Dlauncher.stacktrace=false, -Dlauncher.dev=false, -Djdk.attach.allowAttachSelf, -XX:+DisableAttachMechanism, -Xmx256M, -cp, C:\Users\tabr\Desktop\mine\Launcher.jar, pro.gravit.launcher.LauncherEngine] 2020.10.28 11:06:10 [DEBUG] Testing stacktrace 2020.10.28 11:06:10 [DEBUG] Verifying class loader 2020.10.28 11:06:10 [DEBUG] Verifying JVM architecture GravitLauncher (fork sashok724's Launcher) Launcher v5.1.8-1 stable License for Launcher GPLv3. SourceCode: https://github.com/GravitLauncher/Launcher Exception in thread "main" java.lang.SecurityException: Class pro.gravit.launcher.LauncherEngine not signed at pro.gravit.launcher.LauncherEngine.checkClass(LauncherEngine.java:64) at pro.gravit.launcher.LauncherEngine.main(LauncherEngine.java:91)

microwin7 commented 4 years ago

Цитирую Гравиту

Важная информация по проблеме с стартом лаунчера на Java 8u271 (релиз 20 октября 2020)
Release Notes: https://www.oracle.com/java/technologies/javase/8u271-relnotes.html
Проблема актуальна для версий 5.1.0-5.1.7 с выключенным sign.enabled а так же для обновившихся до 5.1.8 без перегенерации ключей лаунчсервера(и при этом sign.enabled false)
Текст ошибки: java.lang.SecurityException: Class pro.gravit.launcher.XXXXXXX not signed
Решение проблемы
1. Обновитесь до 5.1.8
2. Перегенерируйте ключи лаунчсервера, скопировав их в другую папку и перезапустив лаунчсервер
3. Сделайте build
Альтернативный вариант:
1. Настройте sign.enabled true любым способом
2. Сделайте build
Объяснение
В 5.1.8 была решена проблема с работой на Java 15, где отключили кривую secp256k1, использовавшуюся в 5.1.7 и ниже для генерации ключей по умолчанию. В 5.1.8 кривая secp256k1 была заменена на secp256r1, но обязательной перегенерации ключей не требовалось. В Java 8u271 это изменение перенесли для TLS,CertPath и подписи JAR
Те JAR, которые были подписаны с использованием ключа EC с кривой secp256k1 не будут работать с Java 8u271, так как будут считатся неподписанными.
При sign.enabled false сертификат генерируется на лету с использованием ключей лаунчсервера, которые в 5.1.7 и ниже генерировались с использованием secp256k1. Поэтому вам достаточно настроить sign.enabled true или перегенерировать ключи лаунчсервера 
tabr commented 4 years ago

Цитирую Гравиту

Важная информация по проблеме с стартом лаунчера на Java 8u271 (релиз 20 октября 2020)
Release Notes: https://www.oracle.com/java/technologies/javase/8u271-relnotes.html
Проблема актуальна для версий 5.1.0-5.1.7 с выключенным sign.enabled а так же для обновившихся до 5.1.8 без перегенерации ключей лаунчсервера(и при этом sign.enabled false)
Текст ошибки: java.lang.SecurityException: Class pro.gravit.launcher.XXXXXXX not signed
Решение проблемы
1. Обновитесь до 5.1.8
2. Перегенерируйте ключи лаунчсервера, скопировав их в другую папку и перезапустив лаунчсервер
3. Сделайте build
Альтернативный вариант:
1. Настройте sign.enabled true любым способом
2. Сделайте build
Объяснение
В 5.1.8 была решена проблема с работой на Java 15, где отключили кривую secp256k1, использовавшуюся в 5.1.7 и ниже для генерации ключей по умолчанию. В 5.1.8 кривая secp256k1 была заменена на secp256r1, но обязательной перегенерации ключей не требовалось. В Java 8u271 это изменение перенесли для TLS,CertPath и подписи JAR
Те JAR, которые были подписаны с использованием ключа EC с кривой secp256k1 не будут работать с Java 8u271, так как будут считатся неподписанными.
При sign.enabled false сертификат генерируется на лету с использованием ключей лаунчсервера, которые в 5.1.7 и ниже генерировались с использованием secp256k1. Поэтому вам достаточно настроить sign.enabled true или перегенерировать ключи лаунчсервера 

1м способом проблема решена, спасибо.