在iOS上以编程方式安装根CA证书

时间:2015-03-11 15:29:20

标签: ios objective-c ssl certificate

在我的应用程序中,我在资源文件夹中有ca.crt,我想为整个系统安装它(用户可以接受)。

我试过了:

NSString *path = [[NSBundle mainBundle] pathForResource:@"ca" ofType:@"crt"];
NSURL *url = [NSURL fileURLWithPath:path];
[[UIApplication sharedApplication] openURL:url];

但没有发生任何事情。

[[UIApplication sharedApplication] canOpenURL:url];

返回false。

如果我将证书放在我的网络服务器上并从Safari打开它,一切都很完美(出现新的系统弹出窗口并询问我是否要安装CA证书)。 我需要在应用程序中重复此行为 - 是否可能?

1 个答案:

答案 0 :(得分:1)

我对证书案例不太确定,但如果它与iOS中的.mobileconfig文件具有相同的限制(根据我的经验,是),目前,全局安装证书文件的唯一方法(跨应用程序)是在iOS上使用Safari或Mail应用程序。

要安装证书文件,您可以选择以下选项:

  1. 将证书文件放在网上并通过Safari
  2. 打开
  3. 通过电子邮件发送证书并通过邮件应用程序打开
  4. 将证书文件打包(或下载)到您的捆绑包并通过您的应用程序托管HTTP服务器,然后通过openURL:function打开Safari的localhost链接。
  5. 您可以参考以下资源来安装mobileconfig文件:

    Downloading "mobileconfig" file from an App

    Installing a configuration profile on iPhone - programmatically