Недавно я обновил сертификат сайта HTTPS на сервере, который я обслуживаю, и во время установки сжал настройки apache ssl, в частности, поддерживаемые протоколы и шифры (например, я окончательно удалил SSL3 и т.д.)
К сожалению, в течение часа мне звонили клиенты с жалобой на проблему. Клиент имеет полевую базу продавцов (около 50 из них по всей территории США и Канады), которые используют выпущенные компанией планшеты Android с приложением для индивидуального ввода заказов и отслеживания клиентов. Это приложение перестало работать - и мой клиент теперь не может получать заказы. Это довольно важно, так как они отстают на 100 тыс. Долл. В выполнении заказа всего на день позже.
Первое, что я отследил, это то, что новый сертификат корневого ЦС по умолчанию не является доверенным в Android 4 (DigiCert Global Root G2). Я установил этот сертификат на пример устройства, которое получил, и теперь, по крайней мере, хром может подключиться к сайту. Однако приложение по-прежнему не может подключиться к серверу. Он выдает ошибку "Соединение закрыто одноранговым узлом" каждый раз, когда пытается связаться с сервером.
Я предполагаю, что проблема связана с поддерживаемым набором шифров - я предполагаю, что собственный код Android не поддерживает ни один из шифров, установленных на сервере. Поэтому я получил два вопроса:
Какие шифры мне нужно включить на сервере, чтобы подключить нативное приложение для Android 4? Насколько мне известно, приложение использует
java.net.HttpURLConnection
для подключения, чтобы удалить хост.Что еще мне нужно посмотреть / включить, чтобы попытаться заставить это работать?
Пожалуйста, обратите внимание, что обновление до более новой версии Android не вариант, так как стоимость слишком запредельная для моего клиента. У меня есть сегодня и завтра (суббота и воскресенье), чтобы решить эту проблему - или весь бизнес клиента находится под угрозой.
ОБНОВЛЕНИЕ: вот шифры / протоколы, в настоящее время включенные:
SSLProtocol All -SSLv2 -SSLv3
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256