【问题标题】:Using a personal certificate in an Android Application在 Android 应用程序中使用个人证书
【发布时间】:2012-01-02 09:55:42
【问题描述】:

我希望用户能够在从生成证书的网站安装后将他们自己的个人证书安装到我的 Android 应用程序中,但是当我使用 WebClient 或 Android 浏览器浏览它时,会弹出安全存储并安装它,API 在版本 14 (Android 4.0) 之前不可用,我的用户尚未安装。

这种网站的一个例子是http://www.comodo.com/home/email-security/free-email-certificate.php。 在这里您可以申请个人证书,确认后,您会得到一个可以下载证书的链接。 我希望用户能够从这个网站和其他网站下载证书到我的应用程序中。

谁能告诉我要处理哪种意图才能将证书放入我自己的应用程序中,或者如何修改 WebClient 以便我可以决定它应该如何处理该文件?

提前致谢, 帕特里克

【问题讨论】:

  • “个人证书”的用途是什么? SSL 客户端身份验证?
  • 个人证书的目的是对数据进行解密和签名,所以我只想提取一个Certificate和一个PrivateKey。
  • 仍然不清楚:谁将使用密钥/证书?网络视图?您自己的应用程序的 Java 代码(通过 JCE)?您是只想对网站进行身份验证还是自己编写一些加密代码?
  • 我已经编写了自己的加密代码,以使用我自己的应用程序代码在证书中找到的密钥对消息进行加密和签名。

标签: java android ssl certificate


【解决方案1】:

由于在 ICS (4.0) 之前 Android 密钥库 API 是不公开的,因此您需要将密钥和证书保存到您的应用可以访问的某个文件中才能使用它们。如果您需要一个标准的受密码保护的 Java 密钥库文件,并且需要输入密码以进行加密操作,那么它将是相当安全的。

您可以使用设置->位置和安全->“从 SD 卡安装”在 ICS 之前的版本中导入密钥/证书对,但是没有公共 API 可以从您的应用程序访问这些,只能使用通过内置的 VPN 客户端。

【讨论】:

  • 我发现确实如此,而且我发现它在Android 4.0之前是不公开的,但问题不是存储,而是文件的检索:我一打开url使用我浏览器中的证书,它会尝试将其放入安全存储中。你能告诉我如何在我自己的应用程序中处理该文件的下载,以便我可以处理和保存文件吗?
  • 再次,我们需要更多细节。如果用户安装自己的密钥和证书,他们为什么要下载呢?如果是他们自己的,那就意味着它是本地的。如果是这种情况,只需将文件浏览器功能添加到您的应用程序并让他们选择文件。如果不是,请修改您的问题以提供更多详细信息。
  • 我插入了一个示例:comodo 个人电子邮件证书,您可以在其中从网站下载带有私钥的证书。我希望能够将这些证书放入我的应用程序中。
  • 让他们将其下载到他们的计算机上并传输到 SD 卡。然后从那里导入应用程序。
  • 感谢您清理它,我希望有其他选择。
猜你喜欢
  • 2011-07-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-10
  • 2020-01-12
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 2022-11-15
相关资源
最近更新 更多