0

我正在配置wso2-emm,我坚持的步骤是android 配置,正如教程中所说:

如果 SSL 证书是自签名的,则使用为 iOS 生成的 CA 证书 PEM 文件创建与 Android 兼容的 BKS 文件

我遵循有关 iOS 的说明,但它创建 .jks 文件而不是 android 所需的 .bks 文件。我尝试使用 Portecle 将 .jks 文件转换为 .bks 但出现以下错误:

java.security.UnrecoverableKeyException : Cannot recover key.

如何创建与 Android 兼容的 BKS 文件?

4

3 回答 3

2

请按照以下步骤操作:第 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://

于 2015-04-10T10:35:18.827 回答
0

一个问题是读取私钥的密码错误。您是否为密钥库和密钥条目使用了相同的密码?

另一个问题可能是 BouncyCastle 库在几年前更改了 BKS 文件格式 - 因此您需要旧的 Bouncycastle 版本。

Android 使用可以由KeyStore Explorer创建的旧 BKSv1 。

于 2015-04-09T15:03:35.310 回答
0

我认为使用 Portecle 直接将 jks 文件转换为 bks 格式是不可能的。但是您可以使用生成的密钥文件和 pem 文件来获取 iOS 的 CA 证书。为此,您需要使用 Portecle 创建一个 BKS 格式的新密钥库,然后导入密钥对的 pem 文件,然后导入密钥文件。

于 2015-05-11T12:08:51.417 回答