#java #android #ssl #https #reusability
#java #Android #ssl #https #возможность повторного использования
Вопрос:
Я знаю, что об этом спрашивали несколько раз. Я перепробовал их все, но ни один из них не работает так, как я хочу. Я повторно опрашиваю веб-сервис с интервалом в 30 секунд. Веб-сервис основан на HTTPS / SSL. Я хочу удалить накладные расходы на SSL-квитирование при каждом вызове веб-сервиса (повторное использование SSL). Как я могу этого добиться?
Я посмотрел SSLCertificateSocketFactory
и SSLSessionCache
, похоже, нашел ответ. Я могу получить SSLSocket
экземпляр, вызвав
SSLSocketFactory sockFactory = SSLCertificateSocketFactory.getHttpSocketFactory(TIMEOUT, sslSession);
Однако я не могу найти способ установить мое хранилище ключей и пароль для этой фабрики сокетов. Я думаю, вы можете установить хранилище ключей и пароль только через SSLSocketFactory
конструктор.
Итак, мои 2 проблемы: 1) Требуется повторное использование SSL 2) Необходимо использовать мое хранилище ключей для приема сертификатов с сервера.
Спасибо
Комментарии:
1. Рассматривали ли вы возможность постоянного поддержания соединения с сервером? Накладные расходы, требования к обработке и энергопотребление при установлении соединения могут не стоить того, если вы делаете это каждые 30 секунд.
2. спасибо за мысль, что мне нужно, чтобы это был каждый отдельный веб-сервис
3. Объединение сеансов SSL должно быть автоматическим. Вы уверены, что не получаете его? SSL, но сеансы могут истекать раньше, чем через 30 секунд.
4. EJP — я использовал wireshark для мониторинга сетевого трафика и, к сожалению, обнаружил, что даже с интервалом в 10 секунд рукопожатия выполняются каждый раз.