关于https

https是在http这种超文本链接的基础上,在传输和会话层之间加入了ssl层进行加密,保证数据安全。

苹果要求使用https之后,我一直未接触过正式要配置ssl的应用,深表遗憾,避开的方式就是 在info。plist内进行该项配置。

其实该字典下方还有五个对应的key,其中NSExceptionDomains 内还有五个次级key,包含个对web,视频,不安全证书等各种配置的设置,详情请另外查看,还是说怎么配置ssl请求吧

1:AFNetworking

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];

[securityPolicy setValidatesDomainName:YES];

manager.securityPolicy = securityPolicy;

关于AFSSLPinningMode有

typedef NS_ENUM(NSUInteger, AFSSLPinningMode) {

AFSSLPinningModeNone,//是信任机构签发的证书即可使用,不需验证,自己设置的CA则不行

AFSSLPinningModePublicKey,//绑定式验证,客户端有证书拷贝,两步对比,1,域名、有效期2,对比证书

AFSSLPinningModeCertificate,//绑定式验证,客户端要有证书拷贝,只验证证书公钥,不验证有效期等

};三种枚举类型,后两种都需要在本地加入cer证书,AFNetworking会自动查找,也可以加入代码查询

NSData *certData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"测试111"ofType:@"cer"]];

NSSet *cerSet  = [NSSet setWithObject:certData];

if(certData){

[securityPolicy setPinnedCertificates:cerSet];

}

大多数内容来自大神:http://www.jianshu.com/p/1534c7833430  我要去尝试12306的证书去了!

你可能感兴趣的:(关于https)