Неправильная версия хранилища ключей при выполнении вызова https

Привет товарищи по кодировке Android.

Я пытаюсь сделать безопасный вызов https из моего кода Android. Вызов на эмуляторе проходит нормально, но на самом устройстве Samsung Galaxy я получаю ошибку SSL.

Я использовал метод сумасшедшего Бобса для обработки сертификата. Вот сумасшедшая ссылка Бобса: http://blog.crazybob.org/2010/02/android-trusting-ssl-certificates.html.

Проблема в том, что я получаю ошибку: "неправильная версия хранилища ключей" внутри пользовательского объекта SSLSocketFactory.

Любые предложения о том, что нужно сделать, чтобы это исправить? Благодарю.

3 ответа

Вы создали хранилище ключей в формате Bouncy Castle? Все эти 3 параметра являются обязательными при создании хранилища ключей с помощью keytool (и особенно тип хранилища ключей должен быть BKS):

  -storetype BKS
  -provider org.bouncycastle.jce.provider.BouncyCastleProvider
  -providerpath /path/to/bouncycastle.jar

Android использует версию 1.46 bouncycastle, убедитесь, что вы используете эту версию при создании хранилища ключей. Здесь находится версия 1.46.

Простая альтернатива - использовать Portecle для генерации BKS:

  1. Загрузить Boucycastle Provider 1.46
  2. Замените bcprov.jar в вашем каталоге установки Portecle (пример: C:\Program Files (x86)\Portecle\bcprov.jar). Такое же наименование требуется.
  3. Перезапустите Portecle и создайте доверенное хранилище BKS.

Примечание: для меня проблема была на Android 4.0.3, и это исправило ее.

Больше объяснений здесь.

В случае, если кто-то наткнется на это, и отличный ответ @Jcs не решит его: у меня возникли точно такие же проблемы, и оказалось, что я неправильно установил SSL-сертификаты на свой веб-сервер. Я понял эту идею при использовании инструмента тестирования SSL digicert: мой поставщик сертификатов использовал обычную практику подписывания сертификатов сервера с промежуточным центром сертификации. После установки цепочки сертификатов (которая связывает промежуточный ЦС эмитента с корневым ЦС) все работало нормально.

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