Man*_*ony 4 ssl ios mutual-authentication
我正在尝试在iOS应用中实现SSL相互身份验证.在我看到的大多数示例中,客户端证书与应用程序包捆绑在一起.但在我的情况下,我需要远程加载客户端证书(即,从链接或通过电子邮件).
如果我尝试从外部源(即邮件应用程序)加载证书,它会导航到设置应用程序并将其安装到苹果的钥匙串.因此,我的应用无法访问此证书.
所以有人请为此提出建议吗?
我在内部的iPad应用程序中构建了一个这样的系统.
忘记系统首选项,配置文件等.以这种方式安装的所有证书都是第三方应用程序无法访问的,但仅限于系统应用程序,可能是因为它们已安装到Apple钥匙串中.
我已经探索了这三种方法来加载证书并使用最后一种:
不切实际因为使用特定证书生成不同版本的应用程序非常困难(不可能).更不用说在用户的每个设备上处理特定版本的分发几乎是不可能的.
最安全的方法应该是用户可以选择密码来加密.p12文件,这样当打开p12时,用户必须输入他的密码,但这导致其他工作使其工作.一种不太安全但有效的方法是使用嵌入在应用程序中的单个强密码,并将其用于所有.p12文件
与2)类似,但您直接从Web应用程序的特定URI下载文件,这允许一些自动配置,因为应用程序可以识别自己.
基本上这些是步骤:
如果您的MDM支持ManagedAppConfiguration,您可以更改这些操作以构建更灵活的行为:使用ManagedAppConfiguration,您可以远程在每个应用程序NSUserDefaults中发送特定字符串,这样您就可以使用不同的或临时的URL /令牌来下载配置包和完全使用设备名称进行身份验证.
WWDC 2014#704 - 为企业和教育构建应用程序~13:00
Apple Developer - ManagedConfig示例应用程序
记录一切!应用程序的这一部分所做的一切(失败/错误请求,不存在设备名称请求等)
仅当我们需要配置新设备时,才会激活/停用配置URL.
您可以通过多种方式完成此操作,我的webapp会检查是否存在特定文件,因此我可以执行某些操作,例如touch APP_CERTIFICATES_CONFIG_ENABLED激活自动配置服务并禁用删除文件的所有内容.
只是为了确保在没有我监督的情况下不会出现证书.