问题标签 [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.
ios - iOS 9.2 因 [[CJSONDeserializer deserializer] deserializeAsDictionary 崩溃:
当我在 iOS 8.4 和 9.2 上运行以下代码时,我得到一个jsonData
808 字节的 NSData 对象:
但是,如果我将这个 NSData 对象输入到 CJSONDeserializer 中,我会在 iOS 9.2 中崩溃,但在 iOS 8.4 中会出现 NSDictionary。例如
注意:在崩溃的行 NSData 对象似乎发生了变化 - 例如在这里:
inData
在 iOS 8.4 中为 808 字节,但在 iOS 9.2 中如下所示:
其中,由于地址奇数,我认为这意味着对象不正确(可能被覆盖?)。
我试图在没有应用程序传输安全开销的情况下找出问题,所以我将 NSAppTransportSecurity 设置如下:
我还将 CJSONDeserializer 更新到了最新版本。
任何其他建议可能是什么问题。
ios - 验证服务器是否符合 Apple 的 ATS / TLS 1.2 要求的最佳方式
因此,Apple 要求从 iOS 9 开始的 URL 的 TLS 1.2 具有前向保密性。独立于应用程序,验证服务器是否满足所有要求的最佳方法是什么?
nscurl 完全不起作用 - 或者我不知道如何使用它。我的输出只是反复说 CFNetwork SSLHandshake 失败,即使我知道服务器是合规的。
TLSTool 在某种程度上有效,但我不能强制使用前向保密 (FS) 密码。
openssl 可以为客户端模式指定特定的密码,但我拥有的版本没有 FS 密码。如何升级openssl?
最好的方法是什么?到目前为止,我不得不访问 ssllabs.com 的analyze.html。有什么建议么?
ios - 传输安全异常不适用于特定域
我的 .plist 中有这段代码,我已经将这段代码用于其他应用程序,它可以正常工作,但这次它不起作用。
我也试过这个:
唯一的区别是域;目前我正在使用 .it 域,也许 ATS 对这个域有一些问题?无论如何,如果我使用全局,一切正常:
为什么使用 .it 域会出现 TransportSecurity 错误?
编辑
这是一个示例错误:
传输安全已阻止明文 HTTP (http://) 资源加载,因为它不安全。可以通过应用程序的 Info.plist 文件配置临时例外。
ios - 在 iOS 应用上安装 TLS 1.2 证书
如何在 iOS 应用上安装经过认证的 TLS 证书?
我认为将来还需要能够通过网络将新证书发送到应用程序,如果需要的话,这将如何工作?
我假设一旦安装,Apple 将处理设备端的整个握手过程?
在网上找到这些问题的明确答案时遇到了一些麻烦。
ios - App Transport Security 已阻止明文 HTTP XCode 7.1
我在 XCode 7.1 的代码中看到了 App 传输安全阻止程序。我已经尝试了从 stackoverflow 设置NSAllowsArbitraryLoads
为 true 的几个选项,但这仍然不起作用,任何更多的建议都会真正有帮助。
日志
ios - 您如何根据构建配置更改应用程序传输安全设置?
我有一个具有多个构建配置的应用程序。如果选择的配置是 Debug,我希望文件中的NSAllowsArbitraryLoads键Info.plist
设置为 YES,否则我希望它设置为 NO。
我该如何实现这一目标?
ios - iOS 目标 C HTTPS 请求失败
我进行了广泛的搜索并进行了必要的更改(我认为)以符合 Appl'es ATS 限制。
私钥 2048 位或更高
openssl rsa -in privkey.pem -text -noout
私钥:(2048 位)
在 v1.2 验证的nginx ssl 上运行 ssl v1.2
甚至运行 make nscurl 实用程序来检查连接,所有测试都通过了。
我还可以通过从浏览器对 https 进行 GET 并让一切正常运行来验证服务器是否正常运行。
我的想法是可能是子域引起了问题,所以我将 info.plist 文件更新为以下内容
在我认为一切正常的情况下,我收到以下错误。
2016-01-25 15:59:17.345 StripePlayground[2999:84984] NSURLSession/NSURLConnection HTTP 加载失败 (kCFStreamErrorDomainSSL, -9802) 2016-01-25 15:59:17.348 StripePlayground[2999:84989] (null) 2016-01 -25 15:59:17.348 StripePlayground[2999:84989] 错误域=NSURLErrorDomain 代码=-1200 “发生 SSL 错误,无法与服务器建立安全连接。” UserInfo={NSURLErrorFailingURLPeerTrustErrorKey=, NSLocalizedRecoverySuggestion=您是否仍要连接到服务器?, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9802, NSErrorPeerCertificateChainKey={type = immutable, count = 1, values = ( 0 : )}, NSUnderlyingError=0x7fd97252e580 {错误域=kCFErrorDomainCFNetwork 代码=-1200 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0,https://gateway.boramash.com/stripe-add-customer , NSErrorFailingURLStringKey= prependingtext_for_stack_overflowhttps://gateway.boramash.com/stripe-add-customer, NSErrorClientCertificateStateKey=0}
这也是我的请求代码,非常基本。
任何建议将不胜感激!
ios - 即使使用 AllowInsecureHTTPLoads 和允许任意加载,iOS 9 ATS 也会失败
到目前为止,我已经尝试过我所见过的任何解决方案,但没有任何效果。
据我了解,通过将 Allow Arbitrary Loads = YES 放在我的 info.plist 文件的应用程序传输安全设置中,它应该关闭所有 ATS。
即使这样,我得到NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
如果我检查我的服务器:
所有测试通过!
如果我尝试使用 TLSTool 检查我的服务器设置,我会得到以下信息:
我写了一个简单的 iOS 应用程序,它只是尝试在运行时执行以下操作......
我将应用程序传输安全设置设置为允许任意加载 = YES
我还打开了 NSURLConnection 调试。它给了我以下信息:
我可以看到它正在失败,但我无法弄清楚我能做些什么来让它不会失败!
关闭所有 ATS 不应该让任何事情通过吗?
这一切都是因为我们的 Go Daddy 证书没有使用正确的密码吗?
为什么所有 TLS 检查都通过我的 Mac 上的命令行通过,但尝试通过我的超级简单应用程序运行时,我无法连接。
我意识到这是一篇很长的帖子,但我已经尝试了所有能找到的方法来解决这个问题,但没有任何效果。帮助。
更新:
如果我允许任意加载并将以下内容添加到我的 NSURLSessionDelegate 中,我可以让我的 Swift 示例正常工作
然而,这个解决方案并不理想,因为我想让 ATS 在我现有的服务器上正常工作。
有谁知道在我的服务器端实际修复问题以使 ATS 正常工作的步骤是什么?