iOS 适配Https

作者: 忘川_之上 | 来源:发表于2016-12-19 13:27 被阅读235次

    一、简单介绍下info.plist中的配置设置

    info.plist中的参数设置

    NSAllowsArbitraryLoadsInMedia (设置为 YES,解除通过 AV Foundation 框架访问媒体内容时的 ATS 限制;启用这个 键,务必确保载入的媒体内容已经被加密,例如受FairPlay保护的文件,或者是安全的 HLS流媒,其中不包含敏感的个人信息。默认为 NO)

    NSAllowsArbitraryLoadsInWebContent (设置为 YES,解除通过 web view 发出的网络请求的 ATS 限制。启用这个键,可以使 app 访问任意网页内容,但不影响 app 的总体 ATS 策略。此键值默认为 NO)

    NSAllowsLocalNetworking (设置为 YES,使得 app 可以载入任意本地资源,但不影响 app 的总体 ATS 策略。默 认为 NO)

    NSExceptionDomains ----对单独域名进行配置

    NSIncludesSubdomains ( 设置为 YES,当前域名的 ATS 策略适用于其所有子域名。默认为 NO)

    NSExceptionAllowsInsecureHTTPLoads (设置为 YES,可以同时通过 HTTP 和 HTTPS 访问当前域名。默认为 NO。 注意,配置这个键值,将引发 App Store 的审查,开发者必须说明原因)

    NSExceptionMinimumTLSVersion (指定 TLS 的最低版本,因此可以使用版本较低,有安全漏洞的 TLS 协议。 注意,配置这个键值,将引发 App Store 的审查,开发者必须说明原因)

    NSExceptionRequiresForwardSecrecy ( 设置为 NO,允许针对当前域名使用不支持正向保密的 TLS 加密算法。默认为 YES)

    NSRequiresCertificateTransparency (设置为 YES,将验证域名服务器证书的Certificate Transparency时间戳 。默认为 NO)

    二、实际应用时候的参考实例

    项目中的设置

    每个域下面需要设置3个属性:NSIncludesSubdomains、NSExceptionRequiresForwardSecrecy(目前不加这个属性也可以)、NSExceptionAllowsInsecureHTTPLoads。均为Boolean类型,值分别为YES、NO、YES。

    三、关于ssl认证要说的

    当你设置了info.plist文件之后,实际上除了包涵该域名的地址可以访问之外其他地址还是不能访问,并且不在该域名下的http请求将没有办法访问。

    这里大概看下AFNetworking 基于3.0的处理方法。

    配置信息如下图所示

    相关文章

      网友评论

        本文标题: iOS 适配Https

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