iOS访问 self-signed(自签名) HTTPS
iOS 访问 自签名 HTTPS
Background:
Content:
对于没有 CA 认证过的 HTTPS 是不能够被直接信任的, 称为自签名 HTTPS, 访问此类服务器时会有类似下面的提示:
MAC OSX Safari:
iPhone iOS Safari:
iOS 7 :
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:[[NSURLRequest alloc] initWithURL:[NSURL URLWithString:URLString]] delegate:self];
- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace
{
return [protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust];
}
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust])
{
[challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]forAuthenticationChallenge:challenge];
}
//if ([self.trustedHosts containsObject:self.trustedURL]) {
[challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge];
//}
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
[self.webView loadRequest:[[NSURLRequest alloc] initWithURL:[NSURL URLWithString:self.trustedURL]]];
[connection cancel];
}
iOS8:
iOS9:
[self.wkWebView loadRequest:request];
self.wkWebView.navigationDelegate = self;
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
decisionHandler(WKNavigationActionPolicyAllow);
}
- (void)webView:(WKWebView *)webView didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential * _Nullable))completionHandler {
if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust])
{
[challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]forAuthenticationChallenge:challenge];
}
//if ([self.trustedHosts containsObject:self.trustedURL]) {
[challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge];
//}
completionHandler(NSURLSessionAuthChallengeUseCredential, [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]);
}
而平时我们使用 AFNetworking 对 self-signed HTTPS server 进行 POST 和 GET 的时候也可以使用 NSURLConnection 进行手动添加信任操作.
iOS访问 self-signed(自签名) HTTPS相关推荐
- macOS Chrome无法访问自签名https页面问题的解决办法
问题描述: macOS Chrome无法访问自签名https页面,以往版本可以选择跳过,继续访问,但是新版本Chrome不允许继续,并显示ERR_CERT_INVALID: 解决办法: 在Chrome ...
- 转载:Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名...
转载:Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名 Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名 July 20, 20 ...
- 为iOS的mobileconfig文件进行签名
Safari获取UDID需要安装.mobileconfig文件, 但是,我们在安装了.mobileconfig后,返现配置描述文件打开显示"unsigned" 或者"尚未 ...
- 漫谈iOS程序的证书和签名机制 1
原文:漫谈iOS程序的证书和签名机制 接触iOS开发半年,曾经也被这个主题坑的摸不着头脑,也在淘宝上买过企业证书签名这些服务,有大神都做了一个全自动的发布打包(不过此大神现在不卖企业证书了),甚是羡慕 ...
- 【转】漫谈iOS程序的证书和签名机制
转自:漫谈iOS程序的证书和签名机制 接触iOS开发半年,曾经也被这个主题坑的摸不着头脑,也在淘宝上买过企业证书签名这些服务,有大神都做了一个全自动的发布打包(不过此大神现在不卖企业证书了),甚是羡慕 ...
- iOS逆向之自动化重签名
iOS逆向之自动化重签名 准备工作 非越狱的iPhone手机 用PP助手下载: 微信6.6.5(越狱应用) 步骤 新建工程"自动化签名",在工程目录下新建APP文件夹放置需要重签名 ...
- ios 企业证书 ipa 重新签名发布
提示:暂时不能用了,企业证书滥用 ios 企业证书 ipa 重新签名发布 1. 应用场景 当前有一个 未用企业证书签名的 ipa 文件,默认是不可以直接安装到设备上的:我们需要用企业版证书签名: 当前 ...
- ios 访问网络共享_如何从iOS设备无线访问网络共享
ios 访问网络共享 Syncing files between your computer and your iOS device via iTunes can be tedious and req ...
- ios 访问版本信息 { resultCount:0, results: [] }
IOS 访问版本信息https://itunes.apple.com/lookup?id=APPID ,返回信息为 { "resultCount":0, "results ...
最新文章
- 密码太多记不住?SSO帮你轻松访问VDI及外部资源
- 【LeetCode】687. 最长同值路径
- COGS-363-土地购买-斜率优化
- 微软 VS Code 有 1400 万用户,而全球开发者才 2400 万
- 1019 数字黑洞 (20 分)(c语言)
- linux常用命令汇总(pwd,echo,history,nano)
- create报错不是函数_各种SQL中关于日期函数的那些事(建议收藏)
- Intel张旭:通信和计算的融合将是5G的关键
- 为什么找不到解决方案?--答案就是:转个弯 这里以“解决表示图左边缺失线条、边缘线、分割线问题”为例...
- IIS6 下的Asp.net服务器安全配置
- DBeaver 7.2.4 发布,可视化数据库管理平台
- 达索系统携百世慧科技亮相第二届四川装备智造国际博览会
- java游戏少年张三丰的原代码_RPG大作《少年张三丰》完美游戏攻略
- 只有360浏览器能打开别的都打不开
- [源码分析]go-graceful如何shutdown gracefully
- 预测师:2007年将是中间商艰难的一年
- 解决tomcat启动-Skipping unneeded JARs during scanning can improve startup time and JSP compilation time
- CentOS7.4配置OpenLDAP Client集成AD服务及SSSD服务与SSH服务
- 配置pcie网卡指示灯
- 2021年危险化学品生产单位安全生产管理人员试题及解析及危险化学品生产单位安全生产管理人员模拟考试