我的问题与Apple Transport Security(ATS)有关,我太困惑了。
我想在我的swift应用程序中支持所有协议(所有版本的TLS和SSL)。如果我将NSAllowsArbitraryLoads更改为false,默认情况下app是否适用于所有协议?或者我是否必须在配置中指定域并添加NSExceptionMinimumTLSVersion?
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<false/>
<key>NSExceptionDomains</key>
<dict>
<key>your.servers.domain.here</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
</dict>
</dict>
如何检查我的应用是否正在与服务器通信?
答案 0 :(得分:3)
简而言之,您需要指定NSExceptionMinimumTLSVersion以支持TLS1.0及更高版本; 1.2+是默认值。
为什么要尝试支持较旧的,安全性较低的协议呢?
我不知道如何检查正在使用的协议,但如果您可以将服务器配置为仅使用TLS 1.0,那么您的应用只会连接TLSv1.0密钥地点;这很容易测试。
答案 1 :(得分:2)
安全地连接到网址
通过TLS连接到URL是微不足道的。当您创建NSURLRequest对象以提供给initWithRequest:delegate:方法时,请将https指定为URL的方案而不是http。该连接自动使用TLS,无需额外配置。