【问题标题】:iOS - Add Certificate to applicationiOS - 将证书添加到应用程序
【发布时间】:2013-02-16 05:10:44
【问题描述】:

我有一个私有应用程序,它将与 Web 服务通信并使用客户端证书身份验证。

要求我为每个用户使用不同的证书,所以我不能将它添加到应用程序资源中。 我使用 ipad 模拟器测试了该应用程序,并使用了位于我的计算机上的证书并且它工作正常。

如何在没有任何证书的情况下安装应用程序,然后在 iPad 上安装应用程序后添加证书并在我的应用程序上读取此证书?

我想为每个客户发送一封包含证书的电子邮件,但是客户如何添加证书以及我将如何在我的应用程序中读取它?

【问题讨论】:

  • 为什么不以编程方式将证书下载到应用程序的库目录等?
  • 我会为此推荐 Aquatic Prime 之类的东西,特别是对于独特的证书。
  • @CodaFi - 我不知道 Aquatic Prime。谢谢。但是客户要求我使用他提供的证书。我现在只需要弄清楚如何将证书发送到 iPad 并添加它,这样我就可以在我的应用程序中读取它。

标签: ios objective-c certificate


【解决方案1】:

你只需要将证书放在服务器文件夹中,并在代码中调用 URL,如下所示:

NSURL *url = [NSURL URLWithString:@"http://www.yoururl.com/cert.pem"];
[[UIApplication sharedApplication] openURL:url];

使用此代码,应用程序识别出它是一个证书并要求用户安装它(这真的很简单!)。

编辑

当我的设备没有安装证书时,我的 url 请求不起作用,我收到一个错误,我用这种方法处理它:

+ (void)treatConnectionErrors:(NSError *)error withAlert:(BOOL)withAlert
{
    if (error)
    {
        /* If it's a certificate error, shows alert with link to install certificate */
        if ([error code] == -1202)
        {
            // do something, such as show alertview warning about the certificate 
        } else {
            // treat other errors if you want to
        }
     }
}

【讨论】:

  • 如果证书将是开放的(在服务器上),每个人都可以下载它并使用它进行客户端身份验证
  • 使用密码学,传递一些 post 参数或类似的东西来检查哪个用户正在使用该应用程序以及将下载什么证书
  • @CainaSouza 将证书存储在服务器上是一个选项。但我想知道是否可以通过发送电子邮件。
  • 我刚刚在这里测试了我在我的应用程序中使用的证书(扩展名 .pem)。我发送到我的电子邮件,在我的 iPad 中访问了邮件应用程序,当我尝试打开附加到电子邮件的证书时,它已经将我重定向到设置,以进行安装!所以它在你的情况下工作正常!
  • @CainaSouza 我成功地使用电子邮件在设置中添加了证书。但是如何在我的应用程序中读取它?
猜你喜欢
  • 2013-04-18
  • 2021-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-02
  • 2016-12-16
  • 2018-05-01
相关资源
最近更新 更多