我有连接到SSL SOAP服务的App。对于iOS 9.3.5,该应用程序工作正常。从iOS 10我的代码-9801
出错。我想这与Apple ATS有关。站点证书配置为TLS 1.0
(但我无法管理证书配置)。
我该如何解决这个问题?我想我必须在.plist
文件中将其添加为例外。
我还与www.ssllabs.com进行了核对,对于Apple ATS 9 / iOS 9 R
部分,它给出了错误:
协议或密码套件不匹配
但是在iOS 9上它可以工作。
编辑:
我将域添加到ATS例外(info.plist
中),但错误仍然存在
答案 0 :(得分:1)
NSAppTransportSecurity NSAllowsArbitraryLoads
在info.plist
中添加此键 - 值,这意味着它将允许所有类型的加载。如果您有特定域,则应在info.plist
中添加该特定域。
更新:
如果您需要安全连接,那么您应该管理info.plist
喜欢,
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>yourdomain.com</key>
<dict>
<!--Include to allow subdomains-->
<key>NSIncludesSubdomains</key>
<true/>
<!--Include to allow HTTP requests-->
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<!--Include to specify minimum TLS version-->
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
或者您应该使用已集成ssl
的网络服务!
答案 1 :(得分:1)
在 nscurl 中使用ATS诊断模式获取ATS字典的建议内容:
nscurl --ats-diagnostics https://yourdomain.com --verbose
答案 2 :(得分:0)
我找到了临时解决方法,但我将继续调查TSL证书配置。
我为我们的服务添加了URL
ATS例外(更多信息here)。然后我必须发现iOS 10中的ATS配置已更改,异常必须写为TSLv1.0而不是1.0(我在其他站点使用异常示例,其中1.0是内容) - 10x到this answer。< / p>