- SSLException Class
- Definition
- Remarks
- Constructors
- Fields
- Properties
- Methods
- Explicit Interface Implementations
- Extension Methods
- Exception in thread «main» javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLException: Tag mismatch! #63193
- Comments
- sidrummond commented Aug 7, 2020 •
- TahaTesser commented Aug 7, 2020
- sidrummond commented Aug 7, 2020 •
- Javax.net.ssl.SSLException: Ошибка чтения: ssl = 0x9524b800: ошибка ввода-вывода во время системного вызова, сброс соединения с помощью одноранговой сети
- javax.net.ssl.SSLException: Ошибка чтения: ssl = 0x9524b800: ошибка ввода-вывода во время системного вызова, сброс соединения по пиру
SSLException Class
Definition
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Indicates some kind of error detected by an SSL subsystem.
Remarks
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.
Constructors
A constructor used when creating managed representations of JNI objects; called by the runtime.
Constructs an exception reporting an error found by an SSL subsystem.
Constructs an exception reporting an error found by an SSL subsystem.
Constructs an exception reporting an error found by an SSL subsystem.
Fields
Properties
Returns the cause of this throwable or null if the cause is nonexistent or unknown.
(Inherited from Throwable)
The handle to the underlying Android instance.
(Inherited from Throwable)
Creates a localized description of this throwable.
(Inherited from Throwable)
Returns the detail message string of this throwable.
(Inherited from Throwable)
This API supports the Mono for Android infrastructure and is not intended to be used directly from your code.
This API supports the Mono for Android infrastructure and is not intended to be used directly from your code.
Methods
Appends the specified exception to the exceptions that were suppressed in order to deliver this exception.
(Inherited from Throwable)
Fills in the execution stack trace.
(Inherited from Throwable)
Provides programmatic access to the stack trace information printed by #printStackTrace() .
(Inherited from Throwable)
Returns an array containing all of the exceptions that were suppressed, typically by the try -with-resources statement, in order to deliver this exception.
(Inherited from Throwable)
Initializes the cause of this throwable to the specified value.
(Inherited from Throwable)
Prints this throwable and its backtrace to the standard error stream.
(Inherited from Throwable)
Prints this throwable and its backtrace to the standard error stream.
(Inherited from Throwable)
Prints this throwable and its backtrace to the standard error stream.
(Inherited from Throwable)
Sets the Handle property.
(Inherited from Throwable)
Sets the stack trace elements that will be returned by #getStackTrace() and printed by #printStackTrace() and related methods.
(Inherited from Throwable)
Explicit Interface Implementations
IJavaPeerable.Disposed() | (Inherited from Throwable) |
IJavaPeerable.DisposeUnlessReferenced() | (Inherited from Throwable) |
IJavaPeerable.Finalized() | (Inherited from Throwable) |
IJavaPeerable.JniManagedPeerState | (Inherited from Throwable) |
IJavaPeerable.SetJniIdentityHashCode(Int32) | (Inherited from Throwable) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) | (Inherited from Throwable) |
IJavaPeerable.SetPeerReference(JniObjectReference) | (Inherited from Throwable) |
Extension Methods
Performs an Android runtime-checked type conversion.
Источник
Exception in thread «main» javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLException: Tag mismatch! #63193
Comments
sidrummond commented Aug 7, 2020 •
Hi, since I upgraded Flutter I’m getting the following errors whenever I try to run any project. I’ve tried flutter clean, I’ve tried reinstalling, and searching for more info on how to fix this error but I’m getting nowhere. It was working perfectly fine before I upgraded Flutter. I’m a beginner at this so any help would be appreciated, I’ve exhausted my options right now. This was from a completely new blank project with no files modified:
The text was updated successfully, but these errors were encountered:
TahaTesser commented Aug 7, 2020
Hi @sidrummond
Are you located in china? Are you using any private network?
Your gradle is not being downloaded, try a different connection
If the problem the persist, Can you please provide your flutter doctor -v your flutter run —verbose
Thank you
sidrummond commented Aug 7, 2020 •
Hi @TahaTesser
Thank you for your reply. I’m in England and I’m using a direct connection to the internet, no VPN or anything like that. It was working perfectly up to yesterday and then this error kept happening. Flutter Doctor comes back as there being no problems., I’ve included both of what you asked for below. thank you so much for your help, it’s completely puzzling me why this is happening and I’ve tried everything I can think of to fix it, cleaning and reinstalling etc and nothing is fixing it.
Many thanks,
Simon
C:\Users\Simon\AndroidStudioProjects\flutter_app>flutter doctor -v
Источник
Javax.net.ssl.SSLException: Ошибка чтения: ssl = 0x9524b800: ошибка ввода-вывода во время системного вызова, сброс соединения с помощью одноранговой сети
В течение последних двух недель наши клиенты начинают видеть 100 из этих «SSLException error – Connection reset by peer», и я не могу понять, почему
Мы используем Retrofit с okhttp, никакой специальной конфигурации
Вышеуказанный клиентский провайдер – одноэлементный. RestAdapter построен с использованием этого вложенного клиента (мы используем кинжал) –
Основываясь на решениях переполнения стеллажей, что я обнаружил –
Продолжительность сохранения на сервере составляет 180 секунд, OkHttp имеет значение по умолчанию 300 секунд
Сервер возвращает «Соединение: закрыть» в своем заголовке, но клиентский запрос отправляет «Connection: keepAlive»
Сервер поддерживает TLS 1.0 / 1.1 / 1.2 и использует Open SSL
Наши серверы недавно перешли на другой хостинг-провайдер в другой географии, поэтому я не знаю, являются ли эти сбои DNS или нет
Мы попытались настроить такие вещи, как keepAlive, перенастроить OpenSSL на сервере, но по какой-то причине клиент Android продолжает получать эту ошибку
Это происходит сразу же без каких-либо задержек, когда вы пытаетесь использовать приложение для публикации чего-либо или для обновления (он даже не входит в сеть или не задерживается до того, как это исключение произойдет, что будет означать, что соединение уже нарушено). Но пытаюсь это несколько раз как-то «исправляет», и мы добиваемся успеха. Это происходит позже
Мы аннулировали наши записи DNS на сервере, чтобы убедиться, что это вызвало это, но это не помогло
В основном это происходит на LTE, но я видел его и на Wi-Fi.
Я не хочу отключать поддержку, потому что большинство современных клиентов этого не делают. Также мы используем OkHttp 2.4, и это проблема на почтовых устройствах сэндвич-мороженого, поэтому я надеюсь, что он должен позаботиться об этих проблемах с сетью. Клиент iOS также получает эти исключения, но близок к 100 раз (клиент iOS использует AFNetworking 2.0). Я изо всех сил пытаюсь найти новые вещи, чтобы попытаться в этот момент, любую помощь / идеи?
Обновление – добавление полной трассировки стека через okhttp
Недавно я столкнулся с проблемой, работая над некоторым устаревшим кодом. После googling я обнаружил, что проблема существует повсюду, но без какой-либо конкретной резолюции. Я работал над различными частями сообщения об исключениях и анализировался ниже.
Анализ:
- SSLException : исключение произошло с SSL (Secure Socket Layer), который реализован в пакете javax.net.ssl JDK ( openJDK/oracleJDK/AndroidSDK )
- Read error ssl=# I/O error during system call : при чтении из безопасного сокета произошла ошибка. Это произошло при использовании собственных системных библиотек / драйверов. Обратите внимание: все платформы Solaris, Windows и т. Д. Имеют свои собственные библиотеки сокетов, которые используются SSL. Windows использует библиотеку WINSOCK.
- Connection reset by peer : это сообщение сообщается системной библиотекой (Solaris сообщает ECONNRESET , отчеты Windows WSAECONNRESET ), что сокет, используемый при передаче данных, больше не используется, поскольку существующее соединение было принудительно закрыто удаленным хостом. Нужно создать новый безопасный путь между хостом и клиентом
Причина:
Понимая проблему, я пытаюсь найти причину перезагрузки соединения, и я пришел к следующим причинам:
- Одноранговое приложение на удаленном хосте внезапно прекращается, хост перезагружается, хост или удаленный сетевой интерфейс отключен, или удаленный хост использует жесткое закрытие.
- Эта ошибка может также возникнуть, если соединение было нарушено из-за активности keep-alive, обнаруживающей отказ при выполнении одной или нескольких операций. Network dropped connection on reset(On Windows( WSAENETRESET )) операции Network dropped connection on reset(On Windows( WSAENETRESET )) неудачей с Network dropped connection on reset(On Windows( WSAENETRESET )) а последующие операции Network dropped connection on reset(On Windows( WSAENETRESET )) неудачей с Connection reset by peer(On Windows( WSAECONNRESET )) с Connection reset by peer(On Windows( WSAECONNRESET )) .
- Если целевой сервер защищен брандмауэром, что истинно в большинстве случаев, время жизни (TTL) или тайм-аут, связанные с портом, принудительно закрывают незанятое соединение при заданном тайм-ауте. Это наш интерес
Разрешение:
- События на стороне сервера, такие как внезапный останов обслуживания, перезагрузка, отключенный сетевой интерфейс, не могут быть обработаны никакими средствами.
- На стороне сервера настройте брандмауэр для данного порта с более высоким временем жизни (TTL) или значениями тайм-аута, например 3600 секунд.
- Клиенты могут «попытаться» поддерживать активную сеть, чтобы избежать или уменьшить Connection reset by peer .
- Обычно при запуске сетевого трафика поддерживается соединение, и проблема / исключение часто не видны. У сильного Wifi меньше всего шансов на Connection reset by peer .
- С мобильными сетями 2G, 3G и 4G, где доставка пакетных данных является прерывистой и зависит от доступности мобильной сети, она не может сбрасывать таймер TTL на стороне сервера и приводит к Connection reset by peer сеть.
Ниже приведены термины, предлагаемые на разных форумах для решения проблемы.
- ConnectionTimeout: Используется только в момент времени, связанного с подключением. Если хост требует времени для подключения, это означает, что клиент ожидает подключения.
- SoTimeout : SoTimeout аут SoTimeout . В нем указано максимальное время, в течение которого принимается пакет данных, чтобы считать соединение активным. Если данные не были получены в течение заданного времени, соединение считается заторможенным / сломанным.
- Linger : до того момента, когда сокет не должен закрываться при отправке данных в очередь, и в сокете вызывается функция закрытия сокета.
- TcpNoDelay : вы хотите отключить буфер, который содержит и накапливает TCP-пакеты, и отправлять их после достижения порогового значения? Установка этого значения в true будет пропускать буферизацию TCP, чтобы каждый запрос был отправлен немедленно. Замедление в сети может быть вызвано увеличением сетевого трафика из-за более низкой и более частой передачи пакетов.
Таким образом, ни один из вышеперечисленных параметров не помогает поддерживать работоспособность сети и, следовательно, неэффективен.
Я нашел один параметр, который может помочь решить проблему, которая является этими функциями
Как я разрешил свою проблему?
- Установите HttpConnectionParams.setSoKeepAlive(params, true)
- Поймайте SSLException и проверьте сообщение об SSLException для Connection reset by peer
- Если обнаружено исключение, сохраните процесс загрузки / чтения и создайте новое соединение.
- Если возможно, возобновите загрузку / чтение, перезапустите загрузку
Я надеюсь, что детали помогут. Счастливое кодирование …
Сканируйте свой домен на этом sslTesturl и посмотрите, разрешено ли подключение для вашей версии устройства.
Если устройства с более низкой версией (например,
У нас была такая же проблема, начиная с сегодняшнего утра, и она решена … надеюсь, что это поможет …
- Вчера все было хорошо, и вчера мы обновили SSL на сайте IIS.
- При проверке сайта Bindings на SSL заметили, что IIS8 имеет новый флажок « Требовать имя имени сервера» , он не был проверен так, чтобы ему было предложено его включить.
- Это вызвало проблему.
- Вернулся в IIS, отключил флажок …. Проблема решена .
Источник
javax.net.ssl.SSLException: Ошибка чтения: ssl = 0x9524b800: ошибка ввода-вывода во время системного вызова, сброс соединения по пиру
За последние пару недель наши клиенты начинают видеть сотни таких «ошибок SSLException — сброс соединения по одноранговым узлам», и я не могу понять, почему
Мы используем Retrofit с ohttp, без специальной настройки
Вышеуказанный клиентский провайдер является синглтоном. RestAdapter построен с использованием этого внедренного клиента (мы используем кинжал) —
Основанный на решениях переполнения стека, что я обнаружил —
Продолжительность поддержки на сервере составляет 180 секунд, по умолчанию OkHttp — 300 секунд.
Сервер возвращает «Connection: close» в своем заголовке, но клиентский запрос отправляет «Connection: keepAlive»
Сервер поддерживает TLS 1.0/1.1/1.2 и использует Open SSL
Наши серверы недавно перешли к другому хостинг-провайдеру в другой географии, поэтому я не знаю, являются ли они сбоями DNS или нет
Мы пытались настроить такие вещи, как keepAlive, перенастроить OpenSSL на сервере, но по какой-то причине клиент Android продолжает получать эту ошибку
Это происходит сразу же, без каких-либо задержек, когда вы пытаетесь использовать приложение, чтобы опубликовать что-то или обновить, чтобы обновить (оно даже не выходит в сеть или не имеет задержки до того, как произойдет это исключение, которое будет означать, что соединение уже разорвано). Но попытка сделать это несколько раз как-то «исправляет», и мы добиваемся успеха. Это случится позже
Мы аннулировали наши записи DNS на сервере, чтобы посмотреть, не вызвало ли это это, но это не помогло
В основном это происходит на LTE, но я видел это и на Wifi
Я не хочу отключать поддержку активности, потому что большинство современных клиентов этого не делают. Кроме того, мы используем OkHttp 2.4, и это проблема на сэндвич-устройствах после мороженого, поэтому я надеюсь, что это должно решить эти основные проблемы с сетью. Клиент iOS также получает эти исключения, но примерно в 100 раз меньше (клиент iOS использует AFNetworking 2.0). Я изо всех сил пытаюсь найти новые вещи, чтобы попробовать в этом пункте, любая помощь/идеи?
Обновление — Добавление полной трассировки стека через охтпп
Недавно я столкнулся с проблемой, работая над устаревшим кодом. После поиска в Google я обнаружил, что проблема везде, но без какого-либо конкретного решения. Я работал над различными частями сообщения об исключении и проанализировал ниже.
Анализ:
- SSLException : исключение произошло с SSL (Secure Socket Layer), который реализован в пакете javax.net.ssl JDK ( openJDK/oracleJDK/AndroidSDK )
- Read error ssl=# I/O error during system call : Произошла ошибка при чтении из защищенного сокета. Это произошло при использовании родных системных библиотек/драйверов. Обратите внимание, что все платформы Solaris, Windows и т.д. Имеют свои собственные библиотеки сокетов, которые используются SSL. Windows использует библиотеку WINSOCK.
- Connection reset by peer : это сообщение передается системной библиотекой (Solaris сообщает ECONNRESET , Windows сообщает WSAECONNRESET ), что сокет, используемый при передаче данных, больше не может использоваться, поскольку существующее соединение было принудительно закрыто удаленным хостом. Нужно создать новый безопасный путь между хостом и клиентом
Причина:
Понимая проблему, я пытаюсь найти причину сброса соединения, и я нашел следующие причины:
- Одноранговое приложение на удаленном узле внезапно останавливается, узел перезагружается, узел или удаленный сетевой интерфейс отключается или удаленный узел использует жесткое закрытие.
- Эта ошибка также может произойти, если соединение было разорвано из-за активности активности активности, обнаруживающей сбой во время выполнения одной или нескольких операций. Операции, которые выполнялись, завершаются ошибкой с Network dropped connection on reset(On Windows(WSAENETRESET)) , а последующие операции завершаются с ошибкой Connection reset by peer(On Windows(WSAECONNRESET)) .
- Если целевой сервер защищен брандмауэром, что в большинстве случаев имеет значение true, то время жизни (TTL) или время ожидания, связанное с портом, принудительно закрывает соединение idle в указанное время ожидания. это что-то из нашего интереса
Разрешение:
- События на стороне сервера, такие как внезапная остановка службы, перезагрузка, отключенный сетевой интерфейс, не могут быть обработаны никакими средствами.
- На стороне сервера настройте брандмауэр для данного порта с более высокими значениями времени жизни (TTL) или значениями времени ожидания, такими как 3600 секунд.
- Клиенты могут «пытаться» поддерживая сеть активной, чтобы избежать или уменьшить Connection reset by peer .
- Обычно сетевой трафик поддерживает соединение живым, и проблема/исключение встречается не часто. Сильный Wi-Fi имеет наименьшие шансы на Connection reset by peer,.
- С мобильными сетями 2G, 3G и 4G в тех случаях, когда доставка пакетных данных является прерывистой и зависит от доступности мобильной сети, он может не сбросить таймер TTL на стороне сервера и приведет к Connection reset by peer .
Вот условия, которые предлагается установить на различных форумах для решения проблемы.
- ConnectionTimeout: Используется только во время установления соединения. Если хост требует времени для соединения, более высокое значение этого заставляет клиента ждать соединения.
- SoTimeout : Тайм-аут сокета — указывает максимальное время, в течение которого принимается пакет данных, чтобы считать соединение активным. Если данные не получены в течение данного времени, соединение считается остановленным/разорванным.
- Linger : До какого времени сокет не должен закрываться, когда данные помещаются в очередь для отправки и функция сокета закрывается для сокета.
- TcpNoDelay : Вы хотите отключить буфер, в котором хранятся и накапливаются пакеты TCP, и отправлять их после достижения порогового значения? Если для этого параметра установлено значение true, буферизация TCP будет пропущена, поэтому каждый запрос будет отправлен немедленно. Замедление работы сети может быть вызвано увеличением сетевого трафика из-за меньшей и более частой передачи пакетов.
Таким образом, ни один из приведенных выше параметров не помогает поддерживать работоспособность сети и, следовательно, неэффективно.
Я нашел одну настройку, которая может помочь решить проблему, которая заключается в этой функции
Как я решил свою проблему?
- Установите HttpConnectionParams.setSoKeepAlive(params, true)
- Перехватите SSLException и проверьте наличие сообщения об исключении для Connection reset by peer
- Если исключение найдено, сохраните процесс загрузки/чтения и создайте новое соединение.
- Если возможно, возобновите загрузку/прочитайте, иначе возобновите загрузку
Я надеюсь, что детали помогут. Удачного кодирования .
Источник