Java 11 + Chrome / Firefox = Ошибка расшифровки TLS - PullRequest
0 голосов
/ 16 октября 2018

В настоящее время я выполняю миграцию некоторого серверного программного обеспечения с Java 8 на Java 11. Все работает нормально, за исключением того факта, что соединения TLS отклоняются, когда мой сервер работает на Java 11 (и только 11).То есть все работает при запуске вплоть до Java 10. Включая Java 11 (конечно, без каких-либо изменений кода между ними), я получаю ошибку расшифровки TLS.Мое приложение работает нормально, когда я отключаю SSL / TLS или когда я использую IE / Edge для подключения к своему серверу (через TLS).При использовании Chrome 70 или Firefox 62 я получаю ERR_SSL_PROTOCOL_ERROR или SEC_ERROR_BAD_SIGNATURE соответственно.

Я пытался проанализировать это с помощью WireShark (см. Мой dump ).Мой вывод заключается в том, что Java 11 и Chrome / Firefox согласовывают плохой набор шифров (rsa_pss_rsae_sha256), который почему-то не работает с Java 11. Java 8 и IE / Edge, похоже, согласовывают другой набор шифров (rsa_pkcs1_sha256), который работает.

Кто-нибудь знает, как решить эту проблему или хотя бы обойти ее в настоящий момент (кроме отключения SSL / TLS или, конечно, использования IE / Edge)?Заранее спасибо.

1 Ответ

0 голосов
/ 19 октября 2018

Вероятно, это будет ошибка совместимости с новыми алгоритмами PSS в TLS 1.3.Вы можете прочитать хорошее объяснение причин введения PSS здесь .

До тех пор, пока оно не будет исправлено, вы можете запретить вашему серверу согласовывать TLS 1.3, отредактировав lib/security/java.security и добавив TLSv1.3в собственность jdk.tls.disabledAlgorithms.

...