ios-信任服务器证书
2017-12-22 19:53
92 查看
当我们使用https去进行网络请求的时候,都会收到服务器给我们的证书,而这些证书有分为机构认证的证书,也有是自己签发的证书。在ios中如果我们是去请求的有机构认证的去发送https的请求,就不需要去做处理,但是如果是自签证书,我们必须要去做处理,否则的话是拿不到数据的。所以我们需要在一个代理方法中进行处理
//首先创建Session NSURLSession * session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[NSOperationQueue mainQueue]]; //生成任务 NSURLSessionDataTask * task = [session dataTaskWithURL:[NSURL URLWithString:@"https://www.apple.com"] completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]); }]; //执行任务 [task resume];在下面这个代理方法中进行处理,下面的challenge.protectionSpace表示的是一个安全的空间。
-(void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler: (void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential * _Nullable))completionHandler { //1.判断服务器的采用的认证方法的方法是否是:信任服务器证书 if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) { //2.创建身份验证证书 NSURLCredential * credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]; //3.进行处理 if(completionHandler) { //UseCredential表示的是使用服务器发回的证书 completionHandler(NSURLSessionAuthChallengeUseCredential,credential); } } }其中关于NSURLSessionAuthChallengeDisposition是一个枚举有以下的枚举值
NSURLSessionAuthChallengeDisposition (处置): NSURLSessionAuthChallengeUseCredential - 使用服务器发回证书(保存在challenge里面) NSURLSessionAuthChallengePerformDefaultHandling - 默认处理方式,会忽略证书 NSURLSessionAuthChallengeCancelAuthenticationChallenge - 取消整个请求,忽略证书 NSURLSessionAuthChallengeRejectProtectionSpace - 本次拒绝,下次再试
相关文章推荐
- iOS企业包安装注意事项详解(解决提示iPhone未受信任的问题)
- iOS开发HTTPS实现之信任SSL证书和自签名证书
- iOS开发HTTPS实现之信任SSL证书和自签名证书
- iOS 连windows svn时走https证书不信任
- iOS开发HTTPS实现之信任SSL证书和自签名证书
- iOS 9-iPhone6s-iPadmini4企业证书信任
- 关于IOS 中HTTPS协议(过滤信任检测)
- iOS开发 https请求网络web自定义证书不信任解决方案
- iOS 信任Wifi功能 获取当前连接Wifi
- iOS 10.3下解决Charles抓包ssl证书信任问题
- iOS 证书设置总是信任
- 基于AFNetWorking 和 alamofire 的SSL特定服务器证书信任处理
- iOS开发HTTPS实现之信任SSL证书和自签名证书
- iOS开发信任SSL证书和自签名证书实现HTTPS
- iOS 【真机调试-免证书-开发者信任问题】
- iOS10.3/ISO11证书信任设置
- 【这特么是个坑。。。】iOS 10.3下解决Charles抓包ssl证书信任问题
- iOS开发HTTPS实现之信任SSL证书和自签名证书
- iPhone iOS 设备如何 取消 信任此电脑
- iOS设备连接电脑时在对话框中误点“不信任”