ios AFNetworking支持https请求
来源:互联网 发布:程序员工作量化kpi 编辑:程序博客网 时间:2024/06/05 09:41
ios 9 出来以后,苹果推荐使用https协议,来提高数据传输之间的安全性苹果在2016年6月底发布说要在2017年强制开启ATS,但在24号说为了给用户时间去更新,延期了,但是无论如何早晚搜要使用HTTPS。下面将介绍,如何在工程里面配置,让AF支持https请求.
一.证书准备
- 1.证书转换
在服务器人员,给你发送的crt证书后,进到证书路径,执行下面语句
// openssl x509 -in 你的证书.crt -out 你的证书.cer -outform der
这样你就可以得到cer类型的证书了。双击,导入电脑。
在服务器人员,给你发送的crt证书后,进到证书路径,执行下面语句
// openssl x509 -in 你的证书.crt -out 你的证书.cer -outform der
这样你就可以得到cer类型的证书了。双击,导入电脑。
如果是pem的证书:
x509 -inform PEM -outform DER -in certs/terminal.cer -out certs/terminal.cer
- 2.证书放入工程
1、可以直接把转换好的cer文件拖动到工程中。
2、可以在钥匙串内,找到你导入的证书,单击右键,导出项目,就可以导出.cer文件的证书了
二. 代码修改
- 1先在info.plist中,增加如下图的配置
使用XML格式配置plist文件内容如下 :
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
使用AFNetworking来支持HTTPS
AFNetworking是iOS/OSX开发最流行的第三方开源库之一, AFNetworking 的安全相关设定放在AFSecurityPolicy。
AFNetworking定义了三种SSLpinningmode:
AFSSLPinningModeNone: 代表客户端无条件地信任服务器端返回的证书
AFSSLPinningModePublicKey : 代表客户端会将服务器端返回的证书与本地保存的证书PublicKey的部分进行校验;如果正确,才继续进行。
AFSSLPinningModeCertificate: 代表客户端会将服务器端返回的证书和本地保存的证书中的所有内容,包括PublicKey和证书部分,全部进行校验;如果正确,才继续进行。
(关于 pinning mode:简单的说就是你可以将SSL证书跟你的 APP 一起打包,藉由此机制来避免中间人伪造SSL证书的风险。)
AFNetworking3.0以上版本
// 支持https, 校验证书,不支持抓包
// 1.初始化单例类 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.securityPolicy.SSLPinningMode = AFSSLPinningModeCertificate; // 2.设置证书模式 NSString * cerPath = [[NSBundle mainBundle] pathForResource:@"xxx" ofType:@"cer"]; NSData * cerData = [NSData dataWithContentsOfFile:cerPath]; manager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate withPinnedCertificates:[[NSSet alloc] initWithObjects:cerData, nil]]; // 客户端是否信任非法证书 mgr.securityPolicy.allowInvalidCertificates = YES; // 是否在证书域字段中验证域名 [mgr.securityPolicy setValidatesDomainName:NO];
- 1
//支持https,不校验证书,可以抓包
// 1.初始化单例类 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; // 2.设置非校验证书模式 manager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone]; manager.securityPolicy.allowInvalidCertificates = YES; [manager.securityPolicy setValidatesDomainName:NO];
0 0
- ios AFNetworking支持https请求
- ios AFNetworking支持https请求
- iOS AFNetworking Https请求
- iOS AFNetworking 配置Https请求
- IOS AFNetWorking 3.0--(https支持、缓存设置)
- iOS之https请求客户端---AFNetworking
- iOS AFNetWorking HTTPS自签名证书请求
- AFNetworking https 请求
- AFNetworking 同步、异步请求,ios原生支持同步请求
- iOS开发中使用AFNetWorking进行https请求
- iOS网络-NSURLSession/AFNetworking发送HTTPS网络请求
- iOS开发:对于AFNetworking HTTP转HTTPS请求证书问题
- iOS网络-NSURLSession/AFNetworking发送HTTPS网络请求
- iOS网络-NSURLSession/AFNetworking发送HTTPS网络请求
- iOS基于AFNetworking使用自签名证书实现HTTPS请求
- IOS AFNetworking https
- ios AFNetworking https 认证
- ios AFNetworking网络请求
- AFNetworking 3.0的基本使用(自己做项目总结的)
- Facebook面试题 check for subText in input text's subarray.
- Remote Notification (一)
- 自定义View之组合控件
- NoSQL 数据库概览及其与 SQL 语法的比较
- ios AFNetworking支持https请求
- [绍棠] Xcode编译遇到bitcode问题
- Tomcat 配置详解及优化
- Android 多种方式正确的加载图像,有效避免oom
- 在Eclipse中使用Git
- solr spell拼写检查
- Code Sign Error in macOS Sierra Xcode 8 : resource fork, Finder information
- Android App自定义拍照
- Ubuntu右键打开终端