Intereting Posts
Установите маску макета TextView программно Наложение цвета в андроид NDK Дублированные файлы, скопированные в APK, включающие библиотеки Joda Time и Common IO в Android-проекте Как подключить терминал к эмулятору Android Синхронизация времени для записи данных на нескольких устройствах Android В Android, используя exoplayer, как заполнить обзор поверхности видео, которое не имеет одинакового соотношения сторон с устройством? Текст для шатра динамически Как использовать дополнительные * .so библиотеки на Android Studio и NDK Ошибка DexFile.class в eclipse Как предотвратить множественные экземпляры активности при ее запуске с разными намерениями Не удалось разрешить: com.github.PhilJay: MPAndroidChart: v2.1.4 Пустое намерение (исключение nullpointer) в потоке master / detail при нажатии «вверх» в панели действий Каскадировать значение настраиваемого атрибута из родительского представления в дочернее представление? Анимация по массиву точек Android UnsupportedOperationException: невозможно преобразовать в цвет: type = 0x2

Ошибка неправильной версии хранилища ключей. Как создать сертификат = 1 кейстор?

У меня возникли проблемы с использованием SSL, так как я получаю следующую ошибку, связанную с моим хранилищем ключей (самосозданное и самозаверяющее использование keytool для: http://developer.android.com/tools/publishing/app-signing.html ) :

08-14 20: 55: 23.044: W / System.err (5430): java.io.IOException: неправильная версия хранилища ключей. 08-14 20: 55: 23.060: W / System.err (5430): at org.bouncycastle.jce.provider.JDKKeyStore.engineLoad (JDKKeyStore.java:812) …

Ошибка, возникающая в классе JDKKeyStore.java возникает в следующем коде:

Blockquote От JDKKeyStore.java:
If (version! = STORE_VERSION) {if (version! = 0) {throw new IOException («Неверная версия хранилища ключей»); }}

Blockquote

В этом случае STORE_VERSION = 1 и моя версия = 3 на основе чтения сведений о сертификате, хранящемся в хранилище ключей, которое я создал. Я не знаю, как создать хранилище ключей, содержащее сертификат version = 1.

Я нашел этот ответ полезным: неправильная версия keystore при выполнении вызова https

Однако он требует создания хранилища ключей, используя следующие параметры:

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

Однако, когда я пытаюсь создать keytool (используя приложение терминала на Mac), используя эти параметры:

Keytool -genkeypair -v -alias androiddebugkey -keyalg RSA -keysize 2048 -validity 10000 -keypass android -keystore /Users/djames/dropbox/bc146keystore/debug.keystore -storepass android -providerclass org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath / Пользователи / djames / раздаточная / bc146keystore /

(Где / Пользователи / djames / dropbox / bc146keystore / – это путь к ботинку с заклинанием: bcprov-jdk16-146.jar)

Я получаю следующую ошибку:

Keytool error: java.lang.RuntimeException: Ошибка использования,? Providerpath не является юридической командой java.lang.RuntimeException: Ошибка использования,? Providerpath не является юридической командой на sun.security.tools.KeyTool.parseArgs (KeyTool.java: 375) на sun.security.tools.KeyTool.run (KeyTool.java:171) на sun.security.tools.KeyTool.main (KeyTool.java:166)

Я не понимаю, что это говорит мне. Если я использую: keytool -help, он сообщает мне, что следующие параметры для опции -genkeypair:

-genkeypair [-v] [-protected] [-alias] [-keyalg] [-keysize] [-sigalg] [-dname] [-validity] [-keypass] [-keystore] [-storepass] [-storetype] [-providername] [-providerclass [-providerarg]] … [-providerpath]

Но в Oracle docs java версии 6, которую я использую ( http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/keytool.html )
Он говорит мне, что это варианты:

-genkeypair {-alias alias} {-keyalg keyalg} {-keysize keysize} {-sigalg sigalg} [-dname dname] [-keypass keypass] {-validity valDays} {-storetype storetype} {-keystore keystore} [-storepass Storepass] {-providerClass provider_class_name {-providerArg provider_arg}} {-v} {-protected} {-Jjavaoption}

Который не включает параметр -providerpath option . Почему диссонанс? (Если я не использую параметр -providerpath, тогда я получаю исключение неизвестного класса в опции: "-providerclass org.bouncycastle.jce.provider.BouncyCastleProvider" …)

Когда я google: keytool -providerpath
Я не могу помочь решить эту проблему.

Я не уверен, как решить проблему с ключевыми файлами без решения моей проблемы с keytool. Любые предложения оценены.

Джим

 (Mac OSX 10.6.8 if relevant) 

Solutions Collecting From Web of "Ошибка неправильной версии хранилища ключей. Как создать сертификат = 1 кейстор?"

Моя проблема заключалась в том, чтобы использовать новую версию ботинка, которая была слишком новой. Мне пришлось использовать 146 – позже, и это дало мне эту ошибку.

Мне удалось преодолеть эту проблему с версией хранилища ключей. См.: Ошибка keytool при создании хранилища ключей BKS: providerpath не является юридической командой

Несоответствие версии относится к версии хранилища ключей, а не к версии сертификата (которая должна иметь значение 2 для сертификата v3 X.509).

С какой версией JDK вы использовали keytool ? Вы указали полный путь к команде или используете то, что было в вашем PATH ? Вы уверены, что используете магазины ключей JKS, а не магазины JCEKS?

Чтобы закончить ответ Райана, как мне пришлось копаться, чтобы узнать, как создать BKS с Bouncy Castle 1.46, вы можете использовать Portecle для генерации BKS.

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

Это объясняется здесь .


Изменить :

Начиная с Portecle 1.8, вы можете использовать тип BKS-V1 для создания своего bcprov.jar без замены bcprov.jar .

Вы можете выбрать его после нажатия на New keystore или изменить тип с помощью меню Tools -> Change KeyStore Type .