【问题标题】:Install .der file and return back to the app on completion安装 .der 文件并在完成后返回应用程序
【发布时间】:2012-07-16 12:54:14
【问题描述】:

我有一个需要安装证书的应用,它使用

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:CERTIFICATE_URL]];

这会访问网络服务器,获取证书并启动允许用户安装证书的设置应用程序。

完成后,通过点击完成按钮,设置应用程序会将您带回 Safari,但在一个空白页面(或您上次访问的页面)。

显然我想使用我设置的 url 方案返回应用程序。

有没有人有这方面的经验,可以指点一下吗?

我正在考虑有一个登录页面,该应用程序也会带你去告诉你安装证书(点击一个按钮),然后当它安装时,我假设它会让你回到这个登录页面,之后我可以做如果我可以确定证书已成功安装,则自动重定向回应用程序.....??

【问题讨论】:

  • 你有什么工作吗?
  • 不,这个过程还在使用。我通过使用安全框架来改进代码,在用户即将观看 DRM 文件时检查证书是否已安装,而不是要求每个用户在第一次安装应用程序时安装证书。但是,我们的 PlayReady 实现不再需要此证书安装过程 - 所以这对我来说不再是问题。
  • 谢谢,我正在尝试在应用程序中安装.der,但我无法使其工作,所以我可能会使用您的方法
  • 我添加了一个答案,下面是我从 Apple 技术支持那里得到的。

标签: ios certificate der


【解决方案1】:

不久前,我为此使用了一个 Apple 技术支持问题。以下是对话:

大卫

我正在回答您关于 iOS 上受信任的根证书的问题。你写道:

所以问题是:是否可以查询设置应用程序/或 安装配置文件以确定特定的 证书是否安装。

您可以通过使用信任对象 (SecTrustRef) 来评估特定证书是否受系统信任来执行此操作。我最近发表了一篇技术说明,深入讨论了这个整体问题。在阅读我的其余回复之前,您应该先阅读此内容。

TN2232“HTTPS 服务器信任评估”

http://developer.apple.com/library/ios/#technotes/tn2232/_index.html

技术说明并未涵盖您的具体情况,但采用它描述的技术来解决您的问题相对容易。基本策略是:

  1. 查找由证书颁发机构颁发的证书 -- 您可以从网站本身获取此证书(使用电影的 HEAD 请求),或者您可以将其嵌入到您的应用程序中。

  2. 如果您有证书数据,请从中创建一个证书对象 (SecCertificateRef) -- 您使用 SecCertificateCreateWithData 来执行此操作。

  3. 从中创建一个信任对象 -- 您使用 SecTrustCreateWithCertificates 来执行此操作。您必须提供一个策略对象 (SecPolicyRef),但创建其中一个很容易:只需调用 SecPolicyCreateBasicX509。

  4. 评估信任对象 -- 您可以使用 SecTrustEvaluate 执行此操作。如果它返回 kSecTrustResultProceed 或 kSecTrustResultUnspecified,则系统信任颁发您在步骤 1 中开始的证书的证书颁发机构的根证书;如果它返回任何其他内容,则通过 HTTPS 播放电影很可能会失败。

另外,我们是否必须离开应用才能安装证书?

是的,尽管您可以通过更改电影播放的工作方式来完全避免这个问题。我将在下面更详细地讨论这个问题。

证书能否以某种方式安装在钥匙串中 [...]

是的,但这不会导致系统(甚至您的应用)信任由该根证书颁发的证书。在某些情况下,向钥匙串添加证书很有用(例如,如果它是数字身份的一部分,或者是中间证书),但它对 HTTPS 服务器信任评估没有帮助。

              *                   *                   *

以上所有内容均假设您通过渐进式下载播放电影。如果您的电影使用 HTTP Live Streaming(这是我们通常推荐的),则有 /much/ 更好的方法来解决此问题。 TN2232 的“HTTP Live Streaming”部分介绍了这个想法,并有更详细的信息参考。

这种方法提供了许多非常重要的优势:

o 它避免了安装自定义根证书的需要。

o HTTP Live Streaming 通常会产生更好的播放效果,因为系统会自动适应可用带宽的变化。

o 如果您提供低带宽流,App Review 将允许您通过 WWAN 播放电影。

o 您的媒体片段已加密,因此您可以将它们移动到 HTTP 服务器(而不是 HTTPS 服务器)。这可以显着减少内容分发网络的负载。

我强烈建议您调查此选项。

如果您对此主题有任何其他问题,请告诉我。

奎因“爱斯基摩人!”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多