【发布时间】:2015-06-27 15:18:28
【问题描述】:
我正在尝试通过 SSL(自签名 SSL)将 android 应用程序连接到 IIS 下的 XML Web 服务。我遵循了以下程序:
- 在 IIS 管理器下创建自签名证书
- 将该证书导出为 pfx 文件
- 然后将 pfx 转换为 (java keystore) jks(PKCS12 格式),如下所述
- 将 jks 作为原始数据嵌入到 Android 应用中
- 读取jks文件内容如下
将 pfx 转换为 jks
keytool -importkeystore -srckeystore cert.pfx -srcstoretype pkcs12
-destkeystore cert.jks -deststoretype pkcs12
阅读jks的内容
KeyStore keyStore = KeyStore.getInstance("pkcs12");
InputStream in = _context.getResources().openRawResource(R.raw.cert);
try
{
keyStore.load(in, "123456".toCharArray());
mgrFact.init(keyStore, "123456".toCharArray());
}
catch (Throwable t)
{
logger.error(t.getMessage());
}
finally
{
in.close();
}
现在keyStore.load 抛出以下异常
java.io.IOException: exception unwrapping private key
-java.security.InvalidKeyException: pad block corrupted
我可能在哪里犯了错误?
其实我是按照here所描述的来做的
谢谢
【问题讨论】:
-
PKCS#12 为什么要调用目标密钥库 .jks?这只会导致混乱。
-
你解决了这个问题吗?
标签: java android ssl self-signed