Aus*_*tin 7 certificate objective-c ios
我正在使用 NEVPNManager 为我正在运行的 iOS 应用程序创建个人 VPN。现在我正在尝试安装一个可供所有应用程序使用的根 CA 证书。我了解用户需要在 General -> About - Certificate Trust Settings 下信任此证书。我正在尝试尽可能多地自动化这个过程。我发现尝试这样做的两种方法是:
1) 使用网站上托管的根证书的 URL 打开 Safari,iOS 将提示用户将证书安装为配置文件。
2)在应用程序中实用地安装证书。
选项 #1 有效,但在用户安装证书后,他们不会带回应用程序,仍然必须手动进入并信任证书信任设置中的证书。
使用选项 #2,如果使用 SecItemAdd,它只会添加到我的应用程序沙箱的钥匙串中,其他应用程序不可用。如果可用于其他应用程序,我见过的唯一选项是提高它的信任级别,如下所示,但这似乎需要来自 Apple 的一个我无法构建的旧开源库。
那么,完成安装根证书并提示用户使其受信任的最佳选择是什么?如果可以通过#2,我有什么想法可以构建然后将该库合并到我的应用程序中吗?如果我只剩下#1,那么为用户简化流程的最佳方法是什么?
SecTrustSettingsSetTrustSettings
和相关符号是私有 API,您的应用程序将在提交时被 Apple 拒绝。即使你设法编译这个开源,它仍然会导出私有符号,你的应用程序将被拒绝。
相反,您应该使用openURL:
API 并指向一个 .p12 文件,该文件可以是本地托管的(通过使用应用内 Web 服务器),也可以是远程的。.p12 文件应包含证书链。
这将打开设置应用程序并要求用户安装证书。用户安装后,设备上的所有应用程序都会信任它。
归档时间: |
|
查看次数: |
1640 次 |
最近记录: |