android中的客户端证书

时间:2014-08-26 13:33:52

标签: java android ssl httpurlconnection pem

我希望服务器通过证书验证客户端。我在本地存储了证书 user_cert.pem 和密钥 user_cert.pkey 。  我如何对服务器进行 httpsURLconnection 验证客户端?

我搜索过,但我有点困惑。我找到了link

问题是我的证书是* .pem格式。

我应该像这样设置KeyStore吗?

 KeyStore ks = KeyStore.getInstance("PEM"); 

很抱歉,如果我提供含糊的信息,但我认为没有足够的文档。

我找到了post描述 android仅支持BKS 格式的证书,如果我们有 PEM 格式的证书,我们应该通过 Portecle GUI软件将它们更改为BKS格式。

我只想询问有关Android中PEM格式的客户端证书的任何信息来源。

1 个答案:

答案 0 :(得分:0)

首先,如果您的应用程序已分发,您的私钥将不再​​是私有密钥,因为它可以轻松地从APK中提取。

使用客户端证书所需代码的80%位于official Android documentation (Unknown certificate authority)。 然后,使用TrustManagerFactory代替KeyManagerFactory部分,并调用sslContext.init(kmf.getKeyManagers(), null, null);

供参考:

  • CRT / PEM是相同的证书格式。只有文件扩展名会更改。
  • BKS是Android的等同于JKS,因为JKS在Android中无法使用。