Мое приложение использует WebViewClient для подключения SSL к серверу. Сервер настроен только для приема протоколов TLSv1.1 и выше.
1) Как проверить, какие SSL-протоколы являются a) Поддерживается и b) Включено по умолчанию при использовании Android WebViewClient на устройстве.
2) Как включить определенные SSL-протоколы для экземпляра Android WebViewClient, который используется в моем приложении.
На одном из тестовых устройств под управлением Android 4.3,
WebViewClient запускает обратный вызов onReceivedError с описанием "Не удалось выполнить SSL-квитирование"
Журналы Chrome следующие:
01-29 15: 58: 00.073 5486 5525 W chromium_net: external/chromium/net/http/http_stream_factory_impl_job.cc: 865: [0129/155800: ПРЕДУПРЕЖДЕНИЕ: http_stream_factory_impl_job.cc(865)] Возврат к SSLv3, поскольку хост является нетерпимым TLS: 10.209.126.125:443 01-29 15: 58: 00.083 5486 5525 E chromium_net: external/chromium/net/socket/ssl_client_socket_openssl.cc: 792: [0129/155800: ERROR: ssl_client_socket_openssl.cc(792)] не выполнено; 0, код ошибки SSL 5, net_error -107
Мое приложение также использует классы HttpClient и HttpsUrlConnection для настройки SSL-соединений. Я смог использовать SSLSocket API для включения определенных протоколов при использовании этих классов. http://developer.android.com/reference/javax/net/ssl/SSLSocket.html#setEnabledProtocols(java.lang.String[])
Мне нужно сделать то же самое с WebViewClient.