banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

[iOS] iOS9.0 关闭系统强制使用HTTPS

从 iOS9.0 开始,出于对请求安全性的考虑,默认将 Foundation.framework 中的 HTTP 请求协议更改为 SSL/TLS。换句话说,所有由程序发起的 HTTP 请求默认将请求 HTTPS 的内容。而且,在 HTTPS 出现 404 错误时,不会请求 HTTP 的内容。如果你的 APP 原本就使用 HTTPS,基本上不会有问题。但是,如果使用 HTTP 的话,需要进行以下操作:

  1. 修改你的服务器配置,使其支持 HTTPS 访问。
  2. 修改你的 info.plist 配置,让 APP 能够访问普通的 HTTP 协议网站。否则,在调试程序时,会在 Log 中出现以下提示:

App Transport Security has blocked a cleartext HTTP (http://) resource
load since it is insecure. Temporary exceptions can be configured via
your app's Info.plist file.

修改 info.plist 时,苹果也提供了修改方法。在 info.plist 中增加以下内容即可:

NSAppTransportSecurity
NSExceptionDomains
lidaren.com
NSIncludesSubdomains
NSTemporaryExceptionAllowsInsecureHTTPLoads
NSTemporaryExceptionMinimumTLSVersion
TLSv1.1

如果你的 app 具有浏览器功能,可以这样改,就可以完全放开 HTTP 访问功能了:

NSAppTransportSecurity

NSAllowsArbitraryLoads

最后附上原文链接:https://stackoverflow.com/questions/30720813/cfnetwork-sslhandshake-failed-ios-9

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。