bad_certificate, но только при использовании chrome и RSA (не DES)

Недавно я начал получать «javax.net.ssl.SSLHandshakeException: получено фатальное предупреждение: bad_certificate» после обновлений и т. д., и я думаю, что теперь используется TLSv1.3. Safari, Opera и Firefox работают нормально, но Chrome вызывает исключения на сервере.

javax.net.ssl.SSLHandshakeException: Received fatal alert: bad_certificate

Кто-нибудь знает, почему это так? Это не имеет смысла для меня.

Шаги для воспроизведения, если вам интересно

  1. git clone https://github.com/deanhiller/webpiecesexample-all.git
  2. cd webpiecesexample-all
  3. git checkout -t происхождение/testChromeSsl
  4. ./gradlew assembleDist
  5. cd webpiecesexample/output/distributions
  6. распаковать webpiecesexample.zip
  7. Запустите ./bin/webpiecesexample
  8. Проверьте журналы/server.log
  9. Safari работает, хром заставляет сервер выдавать bad_certificate

Хорошо, я только что обновил сборку до версии 5.3.1, затем jdk11. Чтобы перейти на jdk11, мне пришлось обновить самоподписанный сертификат для тестов до RSA вместо DES, поскольку TLSv1.3 больше не поддерживает DES. Кажется, я получаю эту новую ошибку

Ни один из материалов в этом посте, похоже, не работает

Вызов WebService и проблема с SSL/сертификатом


person Dean Hiller    schedule 27.04.2019    source источник


Ответы (1)


О, вау, я понял это наполовину. Chrome начинает использовать поле SSL по той причине, по которой он закрывает сокет SSL (он не делал этого год или два назад), а SSLEngine просто выдает исключение и причину, которую хром дал нам для закрытия сокета. ssl-соединение, затем сокет.

Затем Chrome предлагает пользователю «Вы уверены, что хотите продолжить, это не хороший сертификат, бла-бла».

Хотя я чувствую, что их все еще слишком много. Это довольно странно.

person Dean Hiller    schedule 27.04.2019