iOS10 NSURLErrorDomain Code 1200
iOS10 NSURLErrorDomain Code 1200
卧龙小 发表于1年前
iOS10 NSURLErrorDomain Code 1200
  • 发表于 1年前
  • 阅读 948
  • 收藏 0
  • 点赞 0
  • 评论 1

华为云·免费上云实践>>>   

摘要: An SSL error has occurred and a secure connection to the server cannot be made

> 环境 xCode8 iOS10 操作:新浪微博的第三方登录

一、异常信息

error = Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." UserInfo={_kCFStreamErrorCodeKey=-9824, NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?

发生了 SSL 错误,无法建立与该服务器的安全连接

二、网上解决方案

在info.plist 中添加以下代码,但没有解决问题

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
</true>
</dict>

三、解决过程

3.1 验证服务器ATS是否PASS

> nscurl --ats-diagnostics --verbose https://xxx.com 出现问题的URL,在服务端上配置TLSV1.2

✗ nscurl --ats-diagnostics --verbose https://api.xxx.com/oauth2/authorize\?client_id\=xxxxxx\&redirect_uri\=http://www.xxx.com/data/api/oauth/connect.php\?method\=weibo_callback\&response_type\=code\&state\=weibo_58247803463a94.25994144
Starting ATS Diagnostics

Configuring ATS Info.plist keys and displaying the result of HTTPS loads to https://api.weibo.com/oauth2/authorize?client_id=1681325651&redirect_uri=http://www.guojishitiao.com/data/api/oauth/connect.php?method=weibo_callback&response_type=code&state=weibo_58247803463a94.25994144.
A test will "PASS" if URLSession:task:didCompleteWithError: returns a nil error.
================================================================================

Default ATS Secure Connection
---
ATS Default Connection
ATS Dictionary:
{
}
2016-11-10 21:50:17.832 nscurl[37466:1493984] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9801)
Result : FAIL <--问题


》》 在服务端 Nginx上配置TLSV1.2,支持ATS

四、另外

*** 由于iOS10的发布,原有ATS设置在iOS10上会出现https网络访问限制的问题。***

<key>sina.com.cn</key>
<dict>
    <key>NSIncludesSubdomains</key>
    <true/>
    <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
    <true/>
    <key>NSExceptionMinimumTLSVersion</key>
    <string>TLSv1.0</string>
    <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
    <false/>
</dict>

需要在问题域名下添加NSExceptionMinimumTLSVersion 的key,值设置为TLSv1.0

> 参考: https://github.com/sinaweibosdk/weibo_ios_sdk

== 输入图片说明

标签: iOS10
共有 人打赏支持
粉丝 43
博文 146
码字总数 70107
评论 (1)
小码爱大牛
你好,我是深圳一家以家居安防为核心的智能家居公司的HR在招聘一位会ffmpeg的Android开发工程师和一位iOS开工程师。不知道您自己或者身边同事朋友有没有在看工作机会的呢?如果感兴趣可以发简历到3288771685@qq.com或者加起QQ。
×
卧龙小
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: