我有一个私有应用程序,它将与Web服务通信并使用客户端证书身份验证。
我需要为每个用户使用不同的证书,因此我无法将其添加到应用程序资源中。 我用ipad模拟器测试了应用程序,并且我使用了计算机上的证书,但它运行良好。
如何在没有任何证书的情况下安装应用程序,然后在iPad上安装应用程序后添加证书并在我的应用程序上阅读此证书?
我考虑过为每个客户发送一封包含证书的电子邮件,但客户如何添加证书以及如何在我的应用程序中阅读?
答案 0 :(得分:2)
您只需将证书放在服务器文件夹中并在代码中调用URL,如下所示:
NSURL *url = [NSURL URLWithString:@"http://www.yoururl.com/cert.pem"];
[[UIApplication sharedApplication] openURL:url];
使用此代码,应用程序会识别出它是一个证书并要求用户安装它(这非常简单!)。
修改强>
当我的设备没有安装证书时,我的网址请求不起作用,我收到一个错误,我用这种方法对待它:
+ (void)treatConnectionErrors:(NSError *)error withAlert:(BOOL)withAlert
{
if (error)
{
/* If it's a certificate error, shows alert with link to install certificate */
if ([error code] == -1202)
{
// do something, such as show alertview warning about the certificate
} else {
// treat other errors if you want to
}
}
}