我希望能够安装客户端证书(例如通过电子邮件),然后使用该证书对应用程序发送的请求进行身份验证。我感觉苹果不允许这种访问,但是找不到明确的答案。这是真的吗?还是有一种方法可以从应用程序内部访问设备上安装的客户端证书?
编辑:澄清一下,这是一个原生应用程序,而不是Web应用程序。
我希望能够安装客户端证书(例如通过电子邮件),然后使用该证书对应用程序发送的请求进行身份验证。我感觉苹果不允许这种访问,但是找不到明确的答案。这是真的吗?还是有一种方法可以从应用程序内部访问设备上安装的客户端证书?
编辑:澄清一下,这是一个原生应用程序,而不是Web应用程序。
您的应用程序只能使用存储在其自己的钥匙串中的内容(或共享相同签名证书的其他第三方应用程序的钥匙串)。至于实际的加载,我们确实使用了openssl(我们编写了一个obj-c包装器),以解码发送到应用程序的.p12文件。
在设置->通用->描述文件中加载的证书受到某种保护,只有内置应用程序(邮件、Safari)才能添加东西。
要在您的应用程序中使用客户端证书,您必须实现将证书导入到您的应用程序钥匙链中。 (请注意,您需要使用PKCS#12证书格式,但是您需要在应用程序中注册它(搜索导出的UTI和文档类型),并使用不同于“.p12”的扩展名进行注册,因为iOS已经注册了该扩展名。我在我的应用程序中使用了.x-p12) 请参见此处:iOS客户端证书和移动设备管理 以及这里:https://developer.apple.com/library/ios/qa/qa1745/_index.html