美文网首页
关于如何更改适配HTTPS

关于如何更改适配HTTPS

作者: deeper_iOS | 来源:发表于2016-12-21 09:29 被阅读147次

    苹果在2016年6月份的发布会上提出2017年的1月1日,所有AppStore的APP必须要开启ATS(也就是使用HTTPS)。


    一、开通SSL

    如果是自己测试可以申请免费的,公司用的话最好是购买付费SSL证书.

    二、客户端

    客户端适配https,也就是启用ATS特性需要做的事

    1.获取具有ATS特性的验证证书,后台人员可以给或者直接在pc域名上的锁标志把证书拉下来;

    2.修改后台适配好的域名http->https;

    3.修改info.plist文件AppTransportSecuritySettings,适配https;

    4.AFHTTPSessionManager实例配置https代码;

    5.webView添加防止请求撤销代码;

    三、代码

    NSString *url = @"https://127.20.你的app";

    //1.获取站点证书

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

    NSData *cerData = [NSData dataWithContentsOfFile:cerPath];

    NSSet *cerSet = [NSSet setWithObjects:cerData, nil];

    //2.https配置

    AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];

    //allowInvalidCertificates 是否信任服务器无效(也就是自建证书)或过期的SSL证书。默认为“不”。

    //需要自建证书则默认YES,测试的时候可以关闭,正式的开启

    securityPolicy.allowInvalidCertificates = YES;

    //validatesDomainName 是否验证域名。默认为“是”。 建议开启

    securityPolicy.validatesDomainName = YES;

    //3.添加证书

    [securityPolicy setPinnedCertificates:cerSet];

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

    manager.requestSerializer = [AFHTTPRequestSerializer serializer];

    manager.responseSerializer = [AFHTTPResponseSerializer serializer];

    //4.配置https

    manager.securityPolicy = securityPolicy;

    [manager GET:url parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {

    NSLog(@"进度:%f",1.0 * downloadProgress.completedUnitCount/downloadProgress.totalUnitCount);

    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

    NSLog(@"成功:%@",responseObject);

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

    NSLog(@"失败:%@",error);

    }];


    相关文章

      网友评论

          本文标题:关于如何更改适配HTTPS

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