iOS-关于适配https

关于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以上

你可能感兴趣的:(iOS-关于适配https)