首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我在ios中的webview上传递ssl证书时遇到问题

我在ios中的webview上传递ssl证书时遇到问题
EN

Stack Overflow用户
提问于 2017-04-25 23:43:14
回答 1查看 965关注 0票数 2

我正在使用uiwebview。我已经对AFNetworking接口calls.But应用了ssl锁定,我无法在webview上传递证书锁定。我需要知道如何在webview重定向上传递ssl证书。

代码语言:javascript
复制
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    [LivefyreAPICalls sslpinning:manager :@"certificate.com" :@"cer"];

NSString *content =[request.URL absoluteString];
    NSArray *urlComponents = [content componentsSeparatedByString:@"&"];

for (NSString *keyValuePair in urlComponents)
{
    NSArray *pairComponents = [keyValuePair componentsSeparatedByString:@"="];
    NSString *key = [[pairComponents firstObject] stringByRemovingPercentEncoding];
    NSString *value = [[pairComponents lastObject] stringByRemovingPercentEncoding];
    [queryStringDictionary setObject:value forKey:key];
}

if ([queryStringDictionary valueForKey:@"id_token"]) {
    [[UserNetwork manager] setUserFromSessionFromToken:[queryStringDictionary valueForKey:@"id_token"] :nil];
    if ([UserNetwork manager].networkUsers.count >=1) {

        SettingsViewController *settingsView=[self.storyboard instantiateViewControllerWithIdentifier:@"SettingsViewController"];
        [self.navigationController pushViewController:settingsView animated:NO];
    }else{
        LiveBlogsTableViewController *blogView=[self.storyboard instantiateViewControllerWithIdentifier:@"liveblog"];
        [self.navigationController pushViewController:blogView animated:YES];
    }
}
return YES;
}
EN

回答 1

Stack Overflow用户

发布于 2017-05-22 21:39:28

UiWebView没有公开任何直接的应用程序接口,但它仍然可以使用NSURLProtocol实现,这使您能够验证所有传出网络请求的证书。不过,这确实需要做大量的工作,更好的解决方案是使用WKWebView,它提供了一种通过WKNavigationDelegate's webView:didReceiveAuthenticationChallenge:completionHandler: (https://developer.apple.com/library/ios/documentation/WebKit/Reference/WKNavigationDelegate_Ref/index.html)执行锁定的显式方法。

在本文的“在Webviews中锁定”一节中有更多细节:https://datatheorem.github.io/TrustKit/getting-started.html,它也是一个用于在iOS应用程序中实现公钥锁定的库。

也可以查看此链接:

https://github.com/antekarin/ssl-pinning-swift

也可以查看这个博客:http://ryandavis.io/allowing-uiwebview-to-accept-self-signed-certificates/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43615299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档