Yog*_*ton 20 ssl objective-c ios nsurlsession ios9
我安装了Xcode 7并尝试在iOS 9下运行我的应用程序.我收到臭名昭着的错误:Connection failed! Error - -1200 An SSL error has occurred and a secure connection to the server cannot be made.
事情是我的服务器支持TLSv1.2并且我正在使用NSURLSession.
那可能是什么问题呢?
Yog*_*ton 31
Apple已发布App Transport Security的完整要求列表.
原来我们正在使用TLS v1.2但是缺少其他一些要求.
这是完整的检查清单:
接受的密码是:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
Run Code Online (Sandbox Code Playgroud)
Nil*_*tel 11
在iOS9中,Apple增加了一项名为App Transport Security(ATS)的新功能.
ATS在网络呼叫期间实施最佳实践,包括使用HTTPS.
Apple预发布文档:
ATS可防止意外泄露,提供安全的默认行为,并且易于采用.无论您是创建新应用程序还是更新现有应用程序,都应尽快采用ATS.
如果您正在开发新应用,则应该专门使用HTTPS.如果您有现有应用,则应尽可能多地使用HTTPS,并创建一个计划,以便尽快迁移其余应用.
在info.plist中添加以下密钥然后查看.
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Run Code Online (Sandbox Code Playgroud)
即使你可以添加特定的例外,
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>testdomain.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<false/>
<key>NSExceptionAllowInsecureHTTPSLoads</key>
<false/>
<key>NSExceptionRequiresForwardSecrecy</key>
<true/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSThirdPartyExceptionAllowInsecureHTTPSLoads</key>
<false/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<true/>
<key>NSThirdPartyExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSRequiresCertificateTransparency</key>
<false/>
</dict>
...
</dict>
</dict>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24337 次 |
| 最近记录: |