iOS开发 AFN配置https请求
2018-01-09 11:10
591 查看
一.项目中的网络交互都是基于AFN,要求AFN版本在3.0及其以上; 二.代码部分 设置AFN请求管理者的时候 添加 https ssl 验证。
// 1.获得请求管理者AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];// 2.加上这个函数,https ssl 验证。[manager setSecurityPolicy:[self customSecurityPolicy]];// https ssl 验证函数 - (AFSecurityPolicy *)customSecurityPolicy {// 先导入证书 证书由服务端生成,具体由服务端人员操作NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"xxx" ofType:@"cer"];//证书的路径NSData *cerData = [NSData dataWithContentsOfFile:cerPath];// AFSSLPinningModeCertificate 使用证书验证模式AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];// allowInvalidCertificates 是否允许无效证书(也就是自建的证书),默认为NO// 如果是需要验证自建证书,需要设置为YESsecurityPolicy.allowInvalidCertificates = YES;//validatesDomainName 是否需要验证域名,默认为YES;//假如证书的域名与你请求的域名不一致,需把该项设置为NO;如设成NO的话,即服务器使用其他可信任机构颁发的证书,也可以建立连接,这个非常危险,建议打开。//置为NO,主要用于这种情况:客户端请求的是子域名,而证书上的是另外一个域名。因为SSL证书上的域名是独立的,假如证书上注册的域名是www.google.com,那么mail.google.com是无法验证通过的;当然,有钱可以注册通配符的域名*.google.com,但这个还是比较贵的。//如置为NO,建议自己添加对应域名的校验逻辑。securityPolicy.validatesDomainName = NO;securityPolicy.pinnedCertificates = [[NSSet alloc] initWithObjects:cerData, nil nil];return securityPolicy;} 三.关于证书 参考文章:http://www.2cto.com/Article/201510/444706.html 服务端给的是crt后缀的证书,其中iOS客户端用到的cer证书,是需要开发人员转换: 1.证书转换 在服务器人员,给你发送的crt证书后,进到证书路径,执行下面语句 openssl x509 -in 你的证书.crt -out 你的证书.cer -outform der 这样你就可以得到cer类型的证书了。双击,导入电脑。 2.证书放入工程 1、可以直接把转换好的cer文件拖动到工程中。 2、可以在钥匙串内,找到你导入的证书,单击右键,导出项目,就可以导出.cer文件的证书了 参考链接:http://www.jianshu.com/p/97745be81d64。 四.在info.plist去掉之前允许http加载的代码 就是删除下面的代码(么有的就省了这一步)
<key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/></dict>iOS适配https参考链接:https://github.com/ChenYilong/iOS9AdaptationTips 证书生成的参考链接:http://www.2cto.com/Article/201510/444706.html 证书转换的参考链接:http://www.jianshu.com/p/97745be81d64
相关文章推荐
- iOS开发 AFN配置https请求
- iOS开发 AFN配置https请求
- iOS 开发 https问题使用AFN进行网络请求时做的一些配置
- IOS开发 支持https请求以及ssl证书配置详解
- iOS开发 支持https请求以及ssl证书配置
- iOS开发 支持https请求以及ssl证书配置(转)
- iOS开发 支持https请求以及ssl证书配置
- iOS开发工具-如何使用网络封包分析工具Charles,通过配置proxy对http、https、tcp、udp 等协议的请求响应过程交互信息进行分析、判断、解决我们移动开发中的遇到的各种实际问题。
- iOS中https的网络请求的配置
- IOS开发中 session&HTTPS&AFN
- iOS开发:对于AFNetworking HTTP转HTTPS请求证书问题
- Xcode7(iOS9 beta1)网络请求失败,配置info.plist文件解决--iOS开发
- iOS - 简述二次封装AFN,设置请求头,https安全策略
- iOS开发 支持https请求以及https请求的抓包
- iOS开发 支持https请求以及ssl证书配置
- iOS开发,配置https自签名证书
- iOS开发中使用AFNetWorking进行https请求
- iOS开发中之如何让项目支持https请求
- iOS安全之二次封装AFN并设置请求头/执行HTTPS加强安全
- iOS开发 支持https请求以及https请求的抓包