将.jks信任库和密钥库转换为ios

时间:2013-04-19 14:32:54

标签: java ios xcode ssl https

我创建了一个java webservice,它将使用服务器端的restlet与iPad进行通信,该服务器端通过HTTPS与相互身份验证进行通信。我使用本指南生成了两个.jks密钥库

http://www.herongyang.com/JDK/ssl_client_auth.html

我已经在java中实现了一个用于测试目的的客户端,一切都很顺利。

我认为在ios中不可能使用格式.jks所以我应该将client.jks转换为pkcs12文件以使其与ios兼容?

我无法找到有关此信息。

谢谢!

2 个答案:

答案 0 :(得分:1)

将.jks转换为pkcs12听起来是个不错的选择。 iOS配置门户生成的证书可以(通过KeyChain Access)导出为pkcs12格式,因此可以安全地假设此格式与iOS兼容。

您可以使用keytool将您的jks转换为pkcs12。我在相反的方向上使用它(将从Apple获得的pkcs12文件转换为jks),它也应该在你的情况下没有问题。

这个命令可以解决这个问题:

keytool -importkeystore -srckeystore input.jks -destkeystore output.p12 -srcstoretype JKS -storetype PKCS12

答案 1 :(得分:0)

如果我理解你的情况,而我可能没有,你根本不需要改变.jks。应用程序的KeyStore只是系统使用的证书的容器。要在IOS上实现证书集成,您可能必须将客户端和ca证书添加到本地系统密钥链(请查看:iOS: Pre install SSL certificate in keychain - programmatically ),但JKS本身应转移到其他平台而无需进行任何修改。

此外,这是在IOS上使用密钥库进行Apple推送通知的示例。 iOS Push Notification - JavaPNS - keystore.p12 file security如果您想完全按照与此人相同的方式(使用本地p12而非加载的商店)执行此操作,请按照此处的说明进行操作:Converting .jks to p12

有关这些文件之间差异的详细信息,请查看:Difference between .keystore file and .jks file

祝你的项目好运。