如何使用AFN3.x升级到HTTPS

注:如果不允许抓包,请校验证书,如果允许抓包,就不要校验证书!
securityPolicy属性请设置为:AFSSLPinningModeNone(该属性的默认值)

  升级https其实主要是服务器来做,如果客户端不做校验证书的话,你的工作就是把接口地址从http 改成 https,然后坐看服务器的小伙伴忙的翻天覆地。 
  如果需要防止被抓包或者为了验证请求安全,请设置校验证书。

AFN两种管理者
1.AFURLSessionManager

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
// 设置证书模式
NSString * cerPath = [[NSBundle mainBundle] pathForResource:@"证书名字" ofType:@"cer"];
NSData * cerData = [NSData dataWithContentsOfFile:cerPath];
manager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate withPinnedCertificates:[[NSSet alloc] initWithObjects:cerData, nil]];

// 客户端是否信任非法证书
manager.securityPolicy.allowInvalidCertificates = YES;

// 是否在证书域字段中验证域名
[manager.securityPolicy setValidatesDomainName:NO];

2.AFHTTPSessionManager(代码与上面的其实是相同的,只不过是管理者的创建方法的区别)

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; 
 // 2.设置证书模式 
NSString * cerPath = [[NSBundle mainBundle] pathForResource:@"证书名字" ofType:@"cer"]; 
NSData * cerData = [NSData dataWithContentsOfFile:cerPath]; manager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate withPinnedCertificates:[[NSSet alloc] initWithObjects:cerData, nil]];
 // 客户端是否信任非法证书 
manager.securityPolicy.allowInvalidCertificates = YES; 
// 是否在证书域字段中验证域名 
[manager.securityPolicy setValidatesDomainName:NO];

你可能感兴趣的:(如何使用AFN3.x升级到HTTPS)