首先第一步
按照正常的流程,公司买了一个沃通的证书,肯定是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了