Xcode8 https带证书访问

前一篇的例子讲的是简单的无证书访问https,这里再补充一种CER证书访问的方式.


1. 使用这种方式,首先得获取到网页的CER证书.获取证书的方式也很多,这里介绍一个最简单的方式:openssl的方式,代码如下:

openssl s_client -connect kyfw.12306.cn:443 /dev/null | openssl x509 -outform DER > https.cer

2. 将获取到的https.cer证书拉进工程里面

3.代码中使用CER证书访问https网络数据

- (void)httpsDemo2{

NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"https.cer" ofType:nil];

NSData *cerData = [NSData dataWithContentsOfFile:cerPath];

NSSet *set = [[NSSet alloc] initWithObjects:cerData, nil];

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

manager.responseSerializer = [AFHTTPResponseSerializer serializer];

manager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate withPinnedCertificates:set]; 

manager.securityPolicy.allowInvalidCertificates = YES; 

[manager GET:@"https://kyfw.12306.cn/otn/leftTicket/init" parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {

NSLog(@"%@", responseObject);

} failure:^(NSURLSessionDataTask *task, NSError *error) {

}];

}

注:关于ATS的配置前面一篇已经讲过,这里就不赘述了!

作者:汪泽煌  

QQ:563206959

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容