我希望服务器通过证书验证客户端。我在本地存储了证书 user_cert.pem 和密钥 user_cert.pkey 。 我如何对服务器进行 httpsURLconnection 验证客户端?
我搜索过,但我有点困惑。我找到了link。
问题是我的证书是* .pem格式。
我应该像这样设置KeyStore吗?
KeyStore ks = KeyStore.getInstance("PEM");
很抱歉,如果我提供含糊的信息,但我认为没有足够的文档。
我找到了post描述 android仅支持BKS 格式的证书,如果我们有 PEM 格式的证书,我们应该通过 Portecle GUI软件将它们更改为BKS格式。
我只想询问有关Android中PEM格式的客户端证书的任何信息来源。
答案 0 :(得分:0)
首先,如果您的应用程序已分发,您的私钥将不再是私有密钥,因为它可以轻松地从APK中提取。
使用客户端证书所需代码的80%位于official Android documentation (Unknown certificate authority)。
然后,使用TrustManagerFactory
代替KeyManagerFactory
部分,并调用sslContext.init(kmf.getKeyManagers(), null, null);
。
供参考: