iOS-Https适配

作者: 吃屁的小栗子 | 来源:发表于2016-12-28 10:27 被阅读323次

在WWDC2016公告中,苹果建议开发商尽快使用ATS协议。该协议是
iOS9和macOS (OS X) 10.11的一个特性。

App Transport Security,即ATS,是苹果公司在iOS 9和Mac OS X 10.11(El Capitan)操作系

苹果指出ATS协议可以防止意外泄露个人信息,以及为应用程序提供默认安全行为。

ATS安全标准的要求

服务器必须启用HTTPS,且TLS版本至少是1.2版本连接加密只允许几种先进的加密算法 证书必须使用SHA256或者更好的哈希算法进行签名,要么是2048位或者更长的RSA密钥,要么就是256位或更长的ECC密钥。

大家可以打开终端输入nscurl --verbose --ats-diagnostics【请求地址】 来检查是否符合ATS要求,如果全部PASS则可以使用

首先给大家普及一下Https 相关知识

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。

客户端相关操作

客户端从iOS 9 SDK起默认开启ATS,一般无需进行代码改造。

如果在plist文件里面修改过App Transport Security Settings-Allow Arbitrary Loads = YES 需要改回为NO。

简单的如果客户端不进行证书的验证只需要将请求更改为https即可,如果设置完之后可以正常访问则可以正常使用。

稍微复杂点的有客户端的单向验证和服务端与客户端的双向验证。

单向认证

使用AFNetworking3.0 网络请求
需要将cer格式证书添加进项目

  //AF加上这句和下面的方法
  manager.securityPolicy = [self customSecurityPolicy];

#pragma mark 证书验证
- (AFSecurityPolicy*)customSecurityPolicy { 
    // 证书导入
    NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"证书名称" ofType:@"cer"]; 
    NSData *cerData = [NSData dataWithContentsOfFile:cerPath];   

    // 使用证书验证模式
    AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];   

    // 是否允许证书无效 默认为NO
    // 如果是自建证书则设置为YES
    securityPolicy.allowInvalidCertificates = NO; 

    // 是否验证域名 默认为YES 不建议修改
    securityPolicy.validatesDomainName = YES;

    NSSet *set = [NSSet setWithObjects:certData, nil];
    securityPolicy.pinnedCertificates = set;

    return securityPolicy;
}

相关文章

  • iOS-Https适配

    在WWDC2016公告中,苹果建议开发商尽快使用ATS协议。该协议是iOS9和macOS (OS X) 10.11...

  • 学习网站

    https://github.com/iOSputao/iOS-https://github.com/ChenYi...

  • iOS一步步实现Https安全

    步骤: 1.创建私钥与证书2.搭建https-Node服务器3.创建iOS-https项目4.使用Charles工...

  • 180308收藏IOS-Https相关

    快云宣布0元注册域名 云计算服务有了免费入口 - A5创业网http://www.admin5.com/artic...

  • 适配iOS11,适配iPhoneX,适配安全区的几个文章和宏

    适配iOS11,适配iPhoneX,适配安全区的几个文章和宏 适配iOS11,适配iPhoneX,适配安全区的几个...

  • App适配

    布局适配 字体适配 软键盘适配

  • 版本适配

    屏幕适配 代码适配 Masonry UIView+AutoLayout 可视化适配 autoLayout 系统适配...

  • Android屏幕适配

    px适配; 百分比适配; 修改dp适配; 屏幕适配 布局适配使用wrap_content,match_parent...

  • 屏幕适配

    适配 什么是适配?适应、兼容各种不同的情况 iOS开发中的适配?系统适配针对不同版本的操作系统进行适配屏幕适配针对...

  • iOS 适配器模式

    适配器模式创建适配协议,创建抽象适配器类,创建类适配器/对象适配器。 应用,适用场景电源适配器,普通充电器(类适配...

网友评论

    本文标题:iOS-Https适配

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