iOS9中關(guān)于 NSURLSession/NSURLConnection HTTP load failed 的解決辦法

最近為了新的存管app上線裙品,忙了近一個月,重新過了一段996的日子俗或,今天終于可以喘口氣清酥,繼續(xù)更新博客了。本文記錄一下在iOS 9中發(fā)送https請求遇到的問題及解決辦法蕴侣,希望通過本文焰轻,可以對ATS的配置有一個更深入的了解。

問題描述

在開發(fā)app時昆雀,遇到了在iOS 9中發(fā)送https請求報(bào)錯的問題:

NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9801)

我們知道辱志,在iOS 9以后,所有的網(wǎng)絡(luò)請求默認(rèn)使用https狞膘,如果你發(fā)送http請求揩懒,則會報(bào)如下錯誤,但是我們可以通過在info.plist中設(shè)置NSAppTransportSecurity - NSAllowsArbitraryLoads的值為YES來允許http請求:

App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.

info.plist

<Center>


允許http請求

</Center>

這樣解決了http的請求問題挽封,但是我發(fā)送是https請求已球,還是出現(xiàn)HTTP laod failed的問題,盡管使用上述方法也可以解決辅愿,但這不是根本的解決辦法智亮。

解決辦法

經(jīng)過分析,懷疑是TLS的問題点待,因?yàn)?code>iOS 9默認(rèn)需要TLS1.2版本來加密數(shù)據(jù)阔蛉,如果服務(wù)端不支持TLS1.2,則URLSession:task:didCompleteWithError:會返回nilerror癞埠,但是后端開發(fā)同事說服務(wù)器支持TLS1.0状原、TLS1.1TLS1.2聋呢,這好像又不是TLS的問題。于是不放心颠区,用nscurl測試了一下測試服務(wù)器削锰,果然不支持TLS1.2,問題找到毕莱。

# 加 --verbose 是為了顯示詳細(xì)的調(diào)試信息
/usr/bin/nscurl --ats-diagnostics --verbose https://testresource.chaoaicai.com

通過輸出看出喂窟,服務(wù)器只支持TLS1.0,于是讓后臺開發(fā)的同事測試并修改后央串,再次測試,發(fā)現(xiàn)服務(wù)器支持TLS1.2了碗啄,并且https的網(wǎng)絡(luò)請求也正常了质和。

支持TLS1.2

ATS異常配置

其實(shí),針對服務(wù)器不支持TLS1.2稚字,而客戶端發(fā)送https請求還有其它的解決方法饲宿,就是配置ATS,設(shè)置最低的TLS版本即可胆描,如下info.plist所示:

<key>NSAppTransportSecurity</key>
  <dict>
  <key>NSExceptionDomains</key>
  <dict>
    <!--你的https域名-->
    <key>testresource.chaoaicai.com</key>
    <dict>
      <!--允許子域-->
      <key>NSIncludesSubdomains</key>
      <true/>
      <!--TLS允許的最低版本號-->
      <key>NSExceptionMinimumTLSVersion</key>
      <string>TLSv1.0</string>
    </dict>
  </dict>
</dict>

其中瘫想,NSExceptionDomains的具體設(shè)置項(xiàng)介紹如下,可以更詳細(xì)的了解ATS的異常配置

  • NSIncludesSubdomains:是否應(yīng)用到子域名昌讲,默認(rèn)是NO
  • NSExceptionAllowsInsecureHTTPLoads:是否允許http請求国夜,YES(允許),默認(rèn)是NO
  • NSExceptionMinimumTLSVersion:最低的TLS版本
  • NSExceptionRequiresForwardSecrecy:是否需要前置加密短绸,NO(允許加密车吹,但不支持PFS:perfect forward secrecy),默認(rèn)是YES
  • NSRequiresCertificateTransparency:是否需要有效的簽名證書醋闭,YES(需要)窄驹,默認(rèn)是NO

本文只是簡單的介紹了一下如何配置ATS,及解決由于服務(wù)器不支持TLS1.2造成的https無法訪問的問題证逻,需要了解https乐埠、TLS的具體工作流程,請參考相關(guān)資料囚企。

參考資料

#iOS問題記錄#關(guān)于NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9801)

iOS 9 適配系列教程

iOS 9.0

整理iOS9適配中出現(xiàn)的坑(圖文)

Cocoa Keys

NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802) on a subdomain?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末丈咐,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子龙宏,更是在濱河造成了極大的恐慌扯罐,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件烦衣,死亡現(xiàn)場離奇詭異歹河,居然都是意外死亡掩浙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進(jìn)店門秸歧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來厨姚,“玉大人,你說我怎么就攤上這事键菱∶剑” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵经备,是天一觀的道長拭抬。 經(jīng)常有香客問我,道長侵蒙,這世上最難降的妖魔是什么造虎? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮纷闺,結(jié)果婚禮上算凿,老公的妹妹穿的比我還像新娘。我一直安慰自己犁功,他們只是感情好氓轰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著浸卦,像睡著了一般署鸡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上限嫌,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天储玫,我揣著相機(jī)與錄音,去河邊找鬼萤皂。 笑死撒穷,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的裆熙。 我是一名探鬼主播端礼,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼入录!你這毒婦竟也來了蛤奥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤僚稿,失蹤者是張志新(化名)和其女友劉穎凡桥,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚀同,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缅刽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年啊掏,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衰猛。...
    茶點(diǎn)故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡迟蜜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出啡省,到底是詐尸還是另有隱情娜睛,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布卦睹,位于F島的核電站畦戒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏结序。R本人自食惡果不足惜障斋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望笼痹。 院中可真熱鬧,春花似錦酪穿、人聲如沸凳干。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽救赐。三九已至,卻和暖如春只磷,著一層夾襖步出監(jiān)牢的瞬間经磅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工钮追, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留预厌,地道東北人。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓轧叽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親刊棕。 傳聞我的和親對象是個殘疾皇子炭晒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容