ios - NSCurl ATS 工作,IOS 9 不工作

标签 ios security nsurl

这是来自 NSCURL 的日志:

Default ATS Secure Connection
---
ATS Default Connection
ATS Dictionary:
{
}
Result : PASS
---

来自 IOS 9 模拟器:

2015-11-02 20:52:29.928 energyvue[1137:17754] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)

虽然 url 在端口 9445 上。无论如何,是否可以在不覆盖 ats 传输安全性的情况下完成这项工作?

最佳答案

我遇到了同样的问题,并且在模拟器 iOS9.2 上可以通信,但不能进入设备。

我解决了在设备上检查 CFNetwork 日志 (http://jonathanblog2000.blogspot.com.br/2015/07/using-cfnetworkdiagnostics-for-network.html) 并使用 Cordova ATS Hybrid App Demo 作为示例 (http://moduscreate.com/cordova-5-ios-9-security-policy-changes/) 的问题。

我的最终 ATS 配置:

    <key>NSAppTransportSecurity</key>
    <dict>
       <key>NSExceptionDomains</key>
       <dict>
        <key>mydomain.com</key>
        <dict>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false/>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
    </dict>
</dict>

我的环境:

  • API 使用 HTTPS TLSv1.2 和 SNI(亚马逊 AWS 云前端、S3 和 Elasticbeanstalk)
  • iPhone 5S iOS 9.2 和 Mac OS X El Capitan
  • 采用 Ionic 框架和 AngularJS 的混合应用

关于ios - NSCurl ATS 工作,IOS 9 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33491615/

相关文章:

ios - 通过滑动显示单个单元格的 UICollectionView 来触发函数

javascript - 从 require.js 模块向窗口(全局范围)注册一个函数?

MySQL 注入(inject)预防

mysql - 安全的 MySQL 备份 cron 作业 – my.cnf 未被读取

ios - 将自动触摸事件坐标发送到 UIView

ios - PhoneGap : how skip inAppBrowser to open an url with Safari

ajax - 安全的 ajax 表单 POST

objective-c - 如何确定 OS X 10.10 之前的应用程序 session 之间的文件等效性?

objective-c - 在 Objective C 中从 NSDictionary 对象创建 URL 查询参数

ios - 在 Swift 上从 URL 加载/下载图像