【发布时间】:2018-04-17 01:43:11
【问题描述】:
我对 ATS 有疑问。 我正在使用 XCode 9.1,我的开发目标是 11.0。 我正在使用 react-native 0.49 进行开发
我的程序正在获取具有有效(谷歌浏览器)letencrypt 证书的 https (https://www.xxxx.com) 资源。 仅当 NSAllowsArbitraryLoads 设置为 true 时提取才有效,设置为 false 时提取被阻止(调试)?
我正在使用临时域 (https://xxxx.no-ip.org) 进行一些测试。这个域也有一个有效的letsencrypt证书。在这种情况下,一切正常。
我可以看到两个主机之间的唯一区别是测试域是单域主机,生产主机是多域主机。 有人建议吗?
问候,
哈利
调试出来: CFNetwork 诊断 [1:1187] 12:38:08.258 { 失败:(空) 加载程序:{url = https://.... 错误:错误域=kCFErrorDomainCFNetwork Code=-1200 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0, _kCFNetworkCFStreamSSLErrorOriginalValue=-9802, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9802}
这是我的 info.plist 部分
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<false/>
<key>NSExceptionDomains</key>
<dict>
<key>xxxx.no-ip.org</key>
<dict/>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
<key>xxxx.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
</dict> </dict> </dict>
【问题讨论】:
-
您如何知道 (
https://www.xxxx.com) 上的证书有效? Letsencrypt 不颁发 *.example.com 证书——你确定你的证书是用于 www.xxxx.com,而不仅仅是 xxxx.com? -
我已经在 Chrome 和 Safari 中打开了 URL
标签: ios app-transport-security