美文网首页
iOS Https 设置 支持AFNetworking

iOS Https 设置 支持AFNetworking

作者: 李二帅 | 来源:发表于2017-01-12 14:10 被阅读0次

    1 :自建证书

    1:必须有证书,证书可以问服务器要,服务器给的证书一般都是crt格式的,我们可以转成cer格式的,转换方法 :openssl x509 -in 你的证书.crt -out 你的证书.cer -outform der  百度的方法,反正我是没有转换成功,那我是怎么得到的呢。这里我拿百度的看一 下

    拖动证书到桌面,会得到一个名字为baidu.com.cer 的证书。如果服务器给你点的是cer格式的就忽略上一步

    2:得到证书接下来就很好做了,把证书倒入工程,放在根目录里,接下来就是写代码了

    NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"证书的名字" ofType:@"cer"];//证书的路径

    NSData *certData = [NSData dataWithContentsOfFile:cerPath];

    NSSet *cerSet = [[NSSet alloc] initWithObjects:certData, nil];

    AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];

    [securityPolicy setAllowInvalidCertificates:YES];//是否允许无效证书(自建证书)

    [securityPolicy setValidatesDomainName:YES];//是否允许验证域名

    [securityPolicy setPinnedCertificates:cerSet];

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

    manager.securityPolicy =securityPolicy//设置证书

    注意://https配置

    /**

    注意:https验证站点证书,是通过域名的,不是ip的,上边方法只能用于域名,如果非要是IP的话必须修改 AFNetworking 的一个文件 AFSecurityPolicy.m

    注释下方代码

    SecTrustSetAnchorCertificates(serverTrust, (__bridge CFArrayRef)pinnedCertificates);

    if (!AFServerTrustIsValid(serverTrust)) {

    return NO;

    }

    **/

    3,然后去验证看能不能通过就行了,有一些第三方不支持https的话可以添加白名单。目前只研究到这里,其他的以后补充!

    相关文章

      网友评论

          本文标题:iOS Https 设置 支持AFNetworking

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