【问题标题】:Client Certificates in androidandroid中的客户端证书
【发布时间】:2014-08-26 13:33:51
【问题描述】:

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

我已经搜索过了,但我有点困惑。我找到了这个 link

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

我应该这样设置 KeyStore 吗?

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

对不起,如果我提供的信息含糊不清,但我认为没有足够的文档。

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

我只是要求任何来源以获取有关 android 中 PEM 格式的客户端证书的信息。

【问题讨论】:

    标签: java android ssl httpurlconnection pem


    【解决方案1】:

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

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

    仅供参考:

    • CRT/PEM 是相同的证书格式。只有文件扩展名发生变化。
    • BKS 是 JKS 的 Android 等价物,因为 JKS 在 Android 中不可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-13
      • 2020-04-12
      • 2016-01-27
      • 2012-01-08
      • 2011-09-28
      相关资源
      最近更新 更多