关于https,自签名的SSL证书,建议大家不要去尝试。如果公司用得是阿里云的服务器,可以免费在阿里平台上申请SSL。我们公司证书是购买的,沃通平台的(ps:沃通平台免费证书苹果已经不在认证了)。
1,首先plist.info:Allow Arbitrary Loads删除或设置为NO,如果需要https与http共同存在就设置为YES
2,后台配置成功后,随意找一个接口链接,放到Safari上打开,如果出现小锁标志,说明后台配置成功了。到这一步的同时,我们还需要拿到.cer格式的证书:
方法如下:点击Safari上小锁,会有弹框,点击显示证书,将证书拖到桌面上,将显示xxx.cer
3,在AFNetWorking中
NSString * cerPath=[[NSBundle mainBundle]pathForResource:@"xxx" ofType:@".cer"];
NSData * cerData=[NSData dataWithContentsOfFile:cerPath];
NSSet *cerSet=[NSSet setWithObjects:cerData, nil];
AFSecurityPolicy * securityPolicy=[AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
securityPolicy.allowInvalidCertificates=YES;
securityPolicy.validatesDomainName=YES;
//添加证书
[securityPolicy setPinnedCertificates:cerSet];
AFHTTPSessionManager *session=[AFHTTPSessionManager manager];
session.responseSerializer.acceptableContentTypes=[NSSet setWithObjects:@"application/json",@"text/json",@"text/javascript",@"text/html", nil];
//超时时间
session.requestSerializer.timeoutInterval=30;
session.responseSerializer=[AFHTTPResponseSerializer serializer];
session.securityPolicy=securityPolicy;
4,将项目中第三方SDK更新至最新。
注:如果你们证书是TSL1.0版本的话(SDWebImage加载图片失败),需要升级至TSL1.2以上
网友评论