WSO2-emm: Как создать файл BKS, совместимый с Android?

Я настраиваю wso2-emm, шаг, на котором я застрял, — это настройка Android, так как он в учебнике сказано:

Если сертификат SSL является самозаверяющим, используйте файл PEM CA сертификата, который создается для iOS для создания файла BKS, совместимого с Android

Я следую инструкциям по iOS, но он создает файл .jks, а не файл .bks, который требуется для Android. Я пытаюсь преобразовать файл .jks в .bks с помощью Portecle, но получаю следующую ошибку:

java.security.UnrecoverableKeyException : Cannot recover key.

Как я могу создать файл BKS, совместимый с Android?


person user3806649    schedule 09.04.2015    source источник


Ответы (3)


Выполните следующие действия: с шага 2 по шаг 8 https://docs.wso2.com/display/EMM110/iOS+Server+Configurations#iOSServerConfigurations-step2

После этого вы можете сгенерировать файл BKS, используя следующую команду:

keytool -noprompt -import -v -trustcacerts -alias 'openssl x509 -inform PEM -subject_hash -noout -in ca_cert.pem' -file ca_cert.pem -keystore emm_truststore.bks -storetype BKS -providerclass org.bouncycastle.jce.provider. BouncyCastleProvider -providerpath bcprov-jdk16-146.jar -storepass 'wso2carbon'

Примечание: вам нужно иметь bcprov-jdk16-146.jar в папке, чтобы сгенерировать вышеуказанный файл bks.

После создания скопируйте emm_truststore.bks в папку Android res/raw. В исходном коде Android CommonUtilities.java измените SERVER_PORT на 9443 и SERVER_PROTOCOL на https://

person Chatura Dilan    schedule 10.04.2015
comment
спасибо @Chatura, я следую инструкциям, но когда я запускаю последнюю команду, я получаю эту ошибку: Illegal option: x509 - person user3806649; 10.04.2015
comment
Вероятно, вы сделали что-то не так при генерации ключей. Я проверил это, и это сработало. пожалуйста, повторите шаги и убедитесь, что вы не получаете никаких ошибок. - person Chatura Dilan; 11.04.2015
comment
Повторяю шаги, но получаю ту же ошибку. вот [ссылка] (ceit.aut.ac.ir/~9031020/CA сертификат PEM file.docx) шагов, которые я сделал с результатом ir. в чем разница между паролем хранилища ключей и паролем ключа хранилища на 8-м уровне в учебнике (7-й в моем) - person user3806649; 11.04.2015
comment
Я запускаю эту команду вместо keytool -noprompt -import -v -trustcacerts -alias "openssl x509 -inform PEM -subject_hash -noout -in ca_cert.pem" -file ca_cert.pem -keystore emm_truststore.bks -storetype BKS -providerclass org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath bcprov-jdk16-146.jar -storepass 'wso2carbon', но когда я пытаюсь экспортировать проект как приложение для Android, я получаю Invalid keystore format! - person user3806649; 11.04.2015
comment
Пожалуйста, обратитесь к документам, которые я упомянул в ответе, и убедитесь, что сертификаты центра сертификации (CA) и центра регистрации (RA) должны быть созданы как сертификаты версии 3, как указано в документах. - person Chatura Dilan; 11.04.2015
comment
Я следую шагам документа и вашим инструкциям позже, так как вы можете увидеть скриншот каждого шага по этой ссылке, но я действительно застрял на этом этапе, и я хотел бы получить вашу помощь. - person user3806649; 11.04.2015
comment
Вы не хотите использовать сгенерированные вами ключи для экспорта проекта Android. Вы можете использовать новую пару ключей, как указано в документах Android, для экспорта проекта. developer.android.com/tools/publishing/app-signing.html - person Chatura Dilan; 12.04.2015

Я думаю, что невозможно напрямую преобразовать файл jks в формат bks с помощью Portecle. Но вы можете использовать файл ключа и файл pem, сгенерированный для получения сертификата CA для iOS. Для этого вам нужно создать новое хранилище ключей формата BKS с помощью Portecle, а затем импортировать файл pem для пары ключей, а затем файл ключа.

person Harshan Liyanage    schedule 11.05.2015

Одна проблема заключается в том, что пароль для чтения закрытого ключа неверный. Вы использовали один и тот же пароль для хранилища ключей и ввода ключа?

Другая проблема может заключаться в том, что библиотека BouncyCastle изменила формат файла BKS несколько лет назад, поэтому вам нужна старая версия Bouncycastle.

Android использует старый BKSv1, который можно создать с помощью KeyStore Explorer.

person Robert    schedule 09.04.2015
comment
Я использовал Portecle v1.7 и тот же пароль для хранилища ключей и ввода ключей! - person user3806649; 09.04.2015