WSO2-emm:如何创建与Android兼容的BKS文件?

时间:2015-04-09 13:39:05

标签: ssl wso2 wso2-emm

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

  

如果SSL证书是自签名的,请使用CA certificate PEM file that is generated for iOS创建与之兼容的BKS文件   的Android

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

java.security.UnrecoverableKeyException : Cannot recover key.

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

3 个答案:

答案 0 :(得分: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://

答案 1 :(得分:0)

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

另一个问题可能是BouncyCastle库几年前改变了BKS文件格式。 Android使用旧格式,但Portecle等当前工具仅创建新版本。

AFAIR最后的Android兼容版本是1.46。您必须使用包含此版本的旧版portecle。

Portecle v1.7应该可以工作,因为它包含BouncyCastle 1.45。

答案 2 :(得分:0)

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