我已经创建了一个java web服务,它将在服务器端使用restlet与ipad通信,该服务器端通过HTTPS与相互身份验证通信。我使用以下指南生成了两个.jks密钥库
http://www.herongyang.com/JDK/ssl_client_auth.html我已经在java中实现了一个用于测试目的的客户端,一切都很好。
我认为在ios中不可能使用。jks格式,所以我应该转换客户端。JKS到pkcs12文件,以使其与ios兼容?
我找不到这方面的信息。
谢谢!
如果我正确理解了您的情况,那么您根本不需要更改.jks文件。应用程序的KeyStore只是系统使用的证书的容器。为了在IOS上实现证书集成,你可能需要将客户端和ca证书添加到本地系统密钥链中(查看:IOS:在keychain中预先安装SSL证书-以编程方式),但JKS本身应该无需修改即可转移到其他平台。
另外,这里有一个在IOS上使用密钥库来做apple推送通知的例子。iOS推送通知- JavaPNS - keystore。如果您想以与这个人完全相同的方式(使用本地的p12而不是加载的存储),只需遵循这里的说明:将。jks转换为p12
有关这些文件之间差异的更多信息,请查看:.keystore文件和.jks文件之间的差异
祝你的项目好运。
将。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