问题标签 [app-transport-security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1219 浏览

ios - iOS 9 ATS - 为所有域禁用前向保密

在 iOS 9 中启用 ATS 后,我的许多客户都无法满足前向保密要求。但是,它们可以满足 https 和 TLS 1.2 的要求。因此,我想放宽前向保密要求,同时保持 https 和 TLS 1.2 到位。

我想知道是否有人想出了一种方法来使用 NSExceptionRequiresForwardSecrecy 或 NSThirdPartyExceptionRequiresForwardSecrecy 来禁用所有域的前向保密。

我尝试将 * 用于 NSExceptionDomains 或 *.com,但是当我使用时,问题链接不起作用。当我使用它的 domain.com 时,问题链接将加载。我正在查看上面的Apple Docs,但没有看到任何方法可以实现我的目标。

是否可以仅禁用所有域的前向保密,就像您可以通过将 NSAppTransportSecurity/NSAllowsArbitraryLoads 设置为 true 来完全禁用 ATS 一样?

谢谢!

0 投票
2 回答
1202 浏览

ios - iOS 9 ATS 使用自签名证书阻止对服务器的 HTTPS 请求

这个问题遍布 Stack Overflow,过去 2 天我一直在尝试无数的 ATP 配置组合并让我的应用程序正常工作。我将彻底解决我的问题,因为看起来最微小的事情都会影响如何解决这个问题。

我最近刚刚设置了一个启用了 SSL 和 TLS 1.2 的 Ubuntu 14 服务器。在我的服务器上是我的应用程序所依赖的服务器端脚本。在我的应用程序中,我使用 NSMutableURLRequest 从服务器请求我的 API,如下所示:

当我将 url 复制到 Chrome 中时,会显示正确的 PHP 返回。在 iOS 9 上从 Xcode 7 请求时,我收到此错误:

我已经使用了无数 info.plist 设置,就像在类似问题中看到的那样。我尝试禁用前向保密,尝试启用任意加载,尝试使用异常域 mydomain.me 及其子域。我取得的唯一进展是错误代码 -9813 切换到 -9802。

我知道为 NSURLRequest 添加委托方法,但这些方法从未被调用并被认为是解决此问题的多余方法。

我使用 localhost 和 http 在 MAMP 服务器上构建了很多应用程序,然后当我启用任意加载时请求工作,所以我的 plist 没有问题。

令人难以置信的是为什么我有一个特殊情况,而且我知道 Stack Overflow 就是这种情况的地方!

谢谢,我希望这在解决后能帮助更多的开发人员。

0 投票
2 回答
95 浏览

ios - 多个服务的 iOS 9 应用程序传输安全性

我正在使用parse.comlayer.com我的公司 url来获取条款/隐私政策,以及cocoapodsgoogle places api 等其他框架。

我被卡住了,因为我想使用正确的Apple Transport Settings,而且我似乎无法弄清楚如何在info.plist. 我不希望它在提交时被应用商店拒绝

我已经对堆栈溢出进行了研究,人们要么通过它,要么为一个域举了一个例子。目前还不清楚我应该如何在 xml 中添加它。

0 投票
0 回答
292 浏览

ios - NSURLSession/NSURLConnection HTTP 加载失败通配符证书 ios8/9

我正在尝试使用有效的 Wildcar SSL 证书(已购买)调用公共 api,但连接失败并出现错误:

错误域=NSURLErrorDomain 代码=-1202 “此服务器的证书无效。您可能正在连接到伪装成“api.mydomain.com”的服务器,这可能会使您的机密信息面临风险。” UserInfo={NSURLErrorFailingURLPeerTrustErrorKey=, NSLocalizedRecoverySuggestion=您是否仍要连接到服务器?, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9813, NSErrorPeerCertificateChainKey={type = immutable, count = 1, values = ( 0 :

通配符证书涵盖所有子域:*.mydomain.com 我尝试连接的主机是:api.mydomain.com

我尝试向 App Transport 安全性添加例外但不起作用

如何解决问题?

0 投票
2 回答
646 浏览

ios - 由于应用程序传输安全性,Parse-Server 未下载 PFFile

我正在从 Parse 的后端迁移到 Heroku 和 MongoDB 上的 Parse 服务器。

通过这个新的后端更改,我让一切工作顺利(包括加载 PFFiles),但是,我现在在添加FACEBOOK_APP_ID参数后遇到错误,但这可能不是原因。

每当我尝试加载PFFile(图像)时,我都会在日志中收到以下消息:

虽然我可以禁用 ATS,但这是不好的做法,我更喜欢 HTTPS。此外,错误代码是“100”,但我可以连接到我的服务器并检索对象和用户数据。

如何在保留 HTTPS 的同时使用 Parse-server 加载 PFFiles?

0 投票
0 回答
539 浏览

objective-c - iOS 9 中的 NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9802)?

我知道这个问题以前被问过!但似乎没有一个解决方案对我有用。通过 url 播放音频文件时出现此错误。

注意:服务器已根据 Apple ATS 并使用 https:// 进行了升级。所有网络调用都已更新 (AFNetworking 3.0) 以使用并兼容 iOS 9。在 plist 中处理异常时没有解决任何问题(见下文)。

我必须从下面的代码片段播放视频/音频文件,这会引发此错误。NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)

应用程序如何播放视频/音频文件:

如果我<key>NSAllowsArbitraryLoads</key>在 plist 中添加了行,则会出现以下错误。

这是我的 .plist 文件:

编辑:

输出curl -v your_url

输出: openssl s_client -connect your_host:your_port -showcerts:(i.e. openssl s_client -connect t-mobi.name.school.nz:443 -showcerts)

输出curl -vL url

输出whereis openssl

输出openssl version

0 投票
1 回答
162 浏览

ios - (ATS) 应用程序传输安全 iOS 9

基本上我的应用程序从网络接收数据,其中有几个文件下载到我的应用程序。

所以,我在 info.plist 中做了更改

添加了该代码:

但是仍然会发生该错误:

App Transport Security 已阻止明文 HTTP (http://) 资源加载,因为它不安全。可以通过应用程序的 Info.plist 文件配置临时例外。

有什么想法可以解决这个错误或者我错过了什么吗?

0 投票
3 回答
324 浏览

ios - 基于 Xcode 构建配置的应用传输层安全性

我像往常一样有 2 个构建配置。Debug, Adhoc, Release. 我想为配置禁用 iOS 应用传输层安全性Debug。所以基本上我想在 Info.plist 中对每个配置进行不同的更改。我怎么能做到这一点?

0 投票
1 回答
94 浏览

ios - 由于安全问题,无法在 iOS 中打开 HTTP 链接

问题的解决方案,但仍然出现错误

App Transport Security 已阻止明文 HTTP (http://) 资源加载,因为它不安全。可以通过应用程序的 Info.plist 文件配置临时例外。

我已经尝试了图片上的解决方案,但仍然出现错误

0 投票
2 回答
942 浏览

ios - iOS App Transport Security 不接受 TLSv1.2 连接和 plist 异常没有任何区别

我有一个使用 SSL/HTTPS 与服务器通信的 iOS 应用程序。服务器提供的证书适用于 TLSv1.2(应用程序传输安全的主要要求)。演示这一点的示例 URL(可以通过检查证书来验证 TLSv1.2)是https://api.branon.co.uk/checkOnline

但是,该应用程序正在引发与应用程序传输层相关的错误——当谷歌搜索时,这些错误意味着这是因为服务器没有在 TLSv1.2 上运行。一个示例错误是:

NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)

和:

NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9824)

我什至在 plist 文件中添加了一堆异常,例如:

但这不会改变结果。

使用的证书是StartCom颁发的免费证书。我的 nginx 配置如下(仅供参考)。

有人知道为什么会这样吗?

谢谢!

更新: 根据@Paulw11 建议的运行 nscurl 的测试(如下)的结果,我决定尝试完全禁用 App Transport Security。我将 plist 中的 App Transport Security 字典更改为以下内容:

我仍然得到同样的错误!因此,如果不是 App Transport Security,可能是什么原因造成的?我再次遇到的那个错误是: NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)