Получено сообщение close_notify во время рукопожатия Ошибка SSL?

Мы столкнулись с этой странной ошибкой в ​​производстве, где при больших объемах (~ 10 тысяч в час) 10% наших вызовов отклоняются с исключением SSL, упомянутым ниже. Это происходит после обновления младшей версии Java 8 (JDK-8028518).

Received close_notify during handshake
Caused by: javax.net.ssl.SSLProtocolException: Received close_notify during handshake
                at sun.security.ssl.Alert.createSSLException(Alert.java:129)
                at sun.security.ssl.Alert.createSSLException(Alert.java:117)
                at sun.security.ssl.TransportContext.fatal(TransportContext.java:314)

Поскольку это не удается только для процента вызовов, мы не можем понять, почему это может происходить.

Мы используем строку ниже, чтобы установить контекст ssl в коде на стороне клиента.

SSLContext ctx = SSLContext.getInstance(TLS);
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
2 263
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

javax.net.ssl.SSLProtocolException: Received close_notify during handshake

Можете ли вы проверить конфигурацию счетчика потоков вашего сервера?

Одна из возможностей может заключаться в высокой нагрузке, больше (относительно) запросов с высокой задержкой, вызывающих эту проблему.

При небольшой нагрузке на сервере может быть достаточно потоков для обработки всего трафика (поскольку запросы с высокой задержкой также будут относительно меньше)

Один из возможных вариантов -

  1. увеличьте фактические серверы приложений под вашим балансировщиком нагрузки
  2. уменьшить количество потоков, настроенных для каждого приложения, в зависимости от пропускной способности системы.
Ответ принят как подходящий

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

Другие вопросы по теме