zoukankan      html  css  js  c++  java
  • iOS应用将强制使用HTTPS安全加密-afn配置https(190926更新)

    WWDC 2016苹果开发者大会上,苹果在讲解全新的iOS10中提到了数据安全这一方面,并且苹果宣布iOS应用将从2017年1月起启用名为App Transport Security的安全传输功能。

    2017年所有iOS应用必须支持ATS安全标准,将强制使用HTTPS安全连接;

    为什么强制使用ATS 安全标准?

    ATS 安全标准是苹果在发布 iOS 9 和 OS X EI Capitan 系统时发布的,这一标准通过强行推动一系列安全实际操作,从而积极促进安全性,同时还要求网络请求必须在一个安全的链接上传输,当开启 ATS 之后,网络传输将自动通过 HTTPS 协议传输而不是 HTTP 协议。启用HTTPS网络连接之后,数据传输的安全性将大幅提示,不容易被黑客拦截破译。 

    强制使用ATS 安全标准将会在 2017 年 1 月 1 日开始,苹果公司称,HTTPS安全标准将会确保我们的个人信息免遭意外泄露,确保应用默认遵守行为安全规范。

    什么是HTTPS?

    HTTPS就是http+SSL,简单地说就是在http协议的基础上开启一条SSL加密通道,让原本“裸奔”的数据,从加密通道中密文传输,保证了数据传输的安全性,服务器安装SSL证书,就可以激活SSL加密通道,实现https加密传输。如今,ATS 安全标准都会在苹果的开发工具打开,不过很多开发商已经停止使用安全功能。要知道如今 App Store 已经拥有超过 200 万个应用,而应用的下载量早已经超过了 1300 亿次,很显然,一个安全的 App Store 是我们每个人都非常需要。建议开发者不要简单地禁用ATS,而应该升级服务器的配置支持ATS,为用户提供更安全的服务。

    天威诚信SSL证书助您快速升级https

    APP应用按ATS要求升级为HTTPS其实并不复杂,天威诚信可提供Symantec 旗下全线数字证书产品。天威诚信拥有15年SSL认证经验, 2000年天威诚信将Symantec证书业务引入中国,开始为中国区客户提供SSL认证服务。是symantec在中国区合作时间最长、合作范围最广、合作层级最高的白金战略合作伙伴。天威诚信拥有最优秀的本土化服务团队, 可为您提供7×24小时专业技术服务。让您享受到最快捷,最全面,最安心的认证服务。

     

    我的项目最近(1909)也要配置https

    现在把过程记录,以方便大家参考

    1.后台会给你一个.crt 证书文件 或者 直接给一个 .cer 文件

    如果给的是.crt 那么需要将 .crt 双击放入钥匙串,导出.cer  再将钥匙串里面的.crt 删除

    2. 将生成的.cer 拖入到工程的你想放入的文件夹的下面,Build Phases->Copy Bundle Resources中加入刚才的证书

    3. afn的代码中需要加入这些

        配置https的时候改的这句

            NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];

            _httpsessionManager = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:BasePathScope] sessionConfiguration:configuration];//比如你的 域名是www.baidu.com 那么  BasePathScope 要写成  https://www.baidu.com

            [_httpsessionManager setSecurityPolicy:[self customSecurityPolicy]];

    + (AFSecurityPolicy *)customSecurityPolicy {

        

        // 先导入证书 证书由服务端生成,具体由服务端人员操作

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

        // AFSSLPinningModeCertificate 使用证书验证模式

        AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];

        // allowInvalidCertificates 是否允许无效证书(也就是自建的证书),默认为NO

        // 如果是需要验证自建证书,需要设置为YES

        securityPolicy.allowInvalidCertificates = YES;

        

        //validatesDomainName 是否需要验证域名,默认为YES;

        //假如证书的域名与你请求的域名不一致,需把该项设置为NO;如设成NO的话,即服务器使用其他可信任机构颁发的证书,也可以建立连接,这个非常危险,建议打开。

        //置为NO,主要用于这种情况:客户端请求的是子域名,而证书上的是另外一个域名。因为SSL证书上的域名是独立的,假如证书上注册的域名是www.google.com,那么mail.google.com是无法验证通过的;当然,有钱可以注册通配符的域名*.google.com,但这个还是比较贵的。

        //如置为NO,建议自己添加对应域名的校验逻辑。

        securityPolicy.validatesDomainName = NO;

        

        securityPolicy.pinnedCertificates = [[NSSet alloc] initWithObjects:cerData, nil];

        return securityPolicy;

    }

    如此一来我的项目就好了。  并没有用到info里面配置白名单

    参考链接

    https://www.jianshu.com/p/8c128d9c9681

    https://www.jianshu.com/p/c8619181907c

  • 相关阅读:
    0309. Best Time to Buy and Sell Stock with Cooldown (M)
    0621. Task Scheduler (M)
    0106. Construct Binary Tree from Inorder and Postorder Traversal (M)
    0258. Add Digits (E)
    0154. Find Minimum in Rotated Sorted Array II (H)
    0797. All Paths From Source to Target (M)
    0260. Single Number III (M)
    0072. Edit Distance (H)
    0103. Binary Tree Zigzag Level Order Traversal (M)
    0312. Burst Balloons (H)
  • 原文地址:https://www.cnblogs.com/isItOk/p/5838216.html
Copyright © 2011-2022 走看看