Xcode8 https带证书访问

作者: wszyxc | 来源:发表于2016-09-29 09:30 被阅读387次

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

    相关文章

      网友评论

      • 飞翔de小苹果:比较实用的文章,听说明年起所有开发项目强制使用HTTPS请求
        T_guo:@飞翔的小苹果 2017年1月开始,貌似是这样
        wszyxc:@飞翔的小苹果 :sunglasses:

      本文标题:Xcode8 https带证书访问

      本文链接:https://www.haomeiwen.com/subject/bwpkyttx.html