3

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

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

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

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

我很难找到有关这方面的信息。

谢谢!

4

2 回答 2

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
于 2013-04-19T14:47:12.703 回答
1

如果我正确理解你的情况,我可能不会,你根本不需要更改 .jks。应用程序的 KeyStore 只是系统使用的证书容器。要在 IOS 上实现证书集成,您可能必须将客户端和 ca 证书添加到本地系统密钥链(查看:iOS:在密钥链中预安装 SSL 证书 - 以编程方式),但 JKS 本身应无需修改即可转移到其他平台必需的。

此外,这里是一个在 IOS 上使用密钥库来执行苹果推送通知的示例。iOS 推送通知 - JavaPNS - keystore.p12 文件安全性 如果您想以与此人完全相同的方式进行操作(使用本地 p12 而不是加载的存储),只需按照此处的说明进行操作:将 .jks 转换为 p12

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

祝你的项目好运。

于 2013-04-19T14:47:28.553 回答