美文网首页
App适配https请求

App适配https请求

作者: 自由银 | 来源:发表于2016-12-29 11:32 被阅读459次

iOS进行https请求时,比http请求多了一项ssl加密功能,在数据传输层对数据进行加密传输,保证数据的安全。
ssl加密需要证书验证;证书是ca机构颁发的话,不需要多余的代码,请求以前http的时候怎么写现在还怎么写,只是把请求url的http改成https;但是如果站点的证书是自签证书(如通过java keytool自生成),ios默认是验证不通过的,请求会失败,就需要在http请求做对应的处理。

 比如使用AFNetworking进行网络请求,就需要将自签名证书配置进去,代码示例如下:
 // /先导入证书
NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"xxx"     ofType:@"cer"];//证书的路径
NSData *certData = [NSData dataWithContentsOfFile:cerPath];

// AFSSLPinningModeCertificate 使用证书验证模式
AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
// allowInvalidCertificates 是否允许无效证书(也就是自建的证书),默认为NO
// 如果是需要验证自建证书,需要设置为YES
securityPolicy.allowInvalidCertificates = YES;
securityPolicy.validatesDomainName = NO;
securityPolicy.pinnedCertificates = @[certData];

代码层配置完成后,需配置app的info.plist;如图


30EBD163-A1FE-4744-825D-97FEC3C2847F.png

需要配置app transport security settings;其中有三项配置,分别为:

   Allows Arbitrary Loads 默认值为NO,表示禁止非https请求;也就是为NO时,只允许https请求;设置为YES时,允许任何请求;

   Allows Arbitrary Loads In Web Content 默认值为NO;该属性表示web界面是否可以任意加载,为NO时只允许加载https请求,为YES时,允许加载任意请求;

   Exception Domains 该属性作用是添加站点,对该站点进行设置;该站点是否必须是https请求,该站点的子节点是否需要https请求;可以设置如下属性:
       NSIncludesSubdomains(包含所有的子站点),  
       NSExceptionAllowsInsecureHTTPLoads(允许加载http请求),
       NSExceptionMinimumTLSVersion(需要TLS最低版本),
       NSExceptionRequiresForwardSecrecy,
       NSRequiresCertificateTransparency;

参考文章:
https://onevcat.com/2016/06/ios-10-ats/
http://www.cnblogs.com/symen/p/5566204.html

相关文章

  • App适配https请求

    iOS进行https请求时,比http请求多了一项ssl加密功能,在数据传输层对数据进行加密传输,保证数据的安全。...

  • iOS 9 网络适配

    iOS 9采用https请求,运行旧工程或者未适配,会出现以下警告: App Transport Security...

  • iOS10 适配 ATS(app支持https通过App Sto

    iOS10 适配 ATS(app支持https通过App Store审核) iOS10 适配 ATS(app支持h...

  • TYKNetwork 配置https 及解决崩溃的问题

    适配https请求 如果报错A security policy configured with AFSSLPinn...

  • Fiddler抓取app HTTPS请求

    关键词:Fiddler、APP、HTTPS一、电脑和手机连接同一WIFIcmd->ipconfig,查看电脑当前I...

  • 快速适配iOS9

    1.网络访问适配 服务器适配 http https plist 配置 (使用不安全的http协议网络请求), iO...

  • spring 中的适配器模式

    HandlerAdapter 处理请求的适配器 适配处理请求的是 servet controller还是 http...

  • Https适配

    一、需要先检查服务器证书: (三种方法,推荐最后一种)1,在腾讯云ATS上检测,https://www.qclou...

  • Https适配

    前言 iOS 9 开始,苹果就引入App Transport Security (ATS),iOS9.0SDK在编...

  • https适配

    适配https 说明: 苹果声明从2017-01-01开始,所有提交的应用必须使用更安全的https协议。 因此,...

网友评论

      本文标题:App适配https请求

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