ios相关点iOS开发iOS 开发

Xcode8 https带证书访问

2016-09-29  本文已影响387人  wszyxc

前一篇的例子讲的是简单的无证书访问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

上一篇 下一篇

猜你喜欢

热点阅读