AFNetwork3.0+https的问题

首先第一步

按照正常的流程,公司买了一个沃通的证书,肯定是CA认证的,后台给了一个crt。

拿到crt证书后,进到证书路径,执行下面语句  openssl x509 -in 你的证书.crt -out 你的证书.cer -outform der 就可以得到cer类型的证书了

第二步

AFHTTPSessionManager*manager = [[AFHTTPSessionManagermanager]initWithBaseURL:[NSURLURLWithString:url]];

// 设置证书模式

NSString* cerPath = [[NSBundlemainBundle]pathForResource:@"xxx"ofType:@"cer"];

NSData* cerData = [NSDatadataWithContentsOfFile:cerPath];

manager.securityPolicy= [AFSecurityPolicypolicyWithPinningMode:AFSSLPinningModeCertificatewithPinnedCertificates:[[NSSetalloc]initWithObjects:cerData,nil]];

//客户端是否信任非法证书

manager.securityPolicy.allowInvalidCertificates=YES;

//是否在证书域字段中验证域名

[manager.securityPolicysetValidatesDomainName:NO];

可是调试了一下失败了,最后发现居然是cer直接拖到项目里面,没有addfile,通过NSString* cerPath = [[NSBundlemainBundle]pathForResource:@"xxx"ofType:@"cer"];得到的cerPath是nil。删除cer重新加入以下。就OK了

AFNetwork3.0+https的问题_第1张图片

你可能感兴趣的:(AFNetwork3.0+https的问题)