【问题标题】:Certificate Renewal Issue in Mobile移动设备中的证书更新问题
【发布时间】:2016-07-05 06:02:08
【问题描述】:
我们需要在我们的移动应用中实现证书固定。我们使用 Appcelerator Titanium 作为框架来构建它。
有一个带有 AFNetworking 的模块支持证书固定。
问题是,如果我们将证书存储在应用程序中并在上传到 App Store/Play Store 的同时捆绑它;如果证书过期会怎样?
我们是否必须使用捆绑的更新证书推送另一个更新?或者是否有一种机制可以在移动应用程序中更新证书?
【问题讨论】:
标签:
security
certificate
appcelerator-titanium
pinning
【解决方案1】:
如果我们将证书存储在应用程序中并在上传到 App Store/Play Store 时捆绑它;如果证书过期会怎样?
您在应用程序中包含一个信任库,其中包含受信任的 CA 根以验证 SSL 连接。如果根过期,那么您的 SSL 连接将失败。这是预期的行为。你可以忽略它(java - ignore expired ssl certificate),但是你正在降低你的安全级别,这是包含 trustore 的主要原因
我们是否必须推送另一个捆绑更新证书的更新?
此操作将解决问题。请注意,如果您使用受信任的 CA(如威瑞信),证书的过期时间会很长,因此这不是常见的操作。其实你会提前知道什么时候到期
或者是否有一种机制可以在移动应用程序中更新证书?
我认为可以设置一个服务来在根 CA 过期之前下载新的信任库,并在带有自定义信任管理器的 Android 应用程序中使用它