欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

iOS如何基于AFNetworking下自簽名證書配置

這篇文章主要為大家展示了“iOS如何基于AFNetworking下自簽名證書配置”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“iOS如何基于AFNetworking下自簽名證書配置”這篇文章吧。

成都創(chuàng)新互聯(lián)長期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為汶上企業(yè)提供專業(yè)的做網(wǎng)站、成都網(wǎng)站建設(shè),汶上網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

自從https推出以后,客戶端對網(wǎng)絡(luò)安全的要求程度也越來越高。甚至在iOS9之后,蘋果強(qiáng)制要求必須支持https請求。

https是什么呢?它又是如何保證數(shù)據(jù)安全的呢?

簡單來說,https就是http+TLS/SSL。就是在http上又加了一層處理加密信息的模塊。服務(wù)端和客戶端的信息傳輸都會通過TLS進(jìn)行加密,也就說傳輸中的數(shù)據(jù)都是加密的,如果不知道私鑰,是無法真正知道傳輸內(nèi)容的真正意思的。

整個https單向驗證流程簡單總結(jié)如下:

  1. 就是用戶發(fā)起請求,服務(wù)器響應(yīng)后返回一個證書,證書中包含一些基本信息和公鑰。

  2. 用戶拿到證書后,去驗證這個證書是否合法,不合法,則請求終止。

  3. 合法則生成一個隨機(jī)數(shù),作為對稱加密的密鑰,用服務(wù)器返回的公鑰對這個隨機(jī)數(shù)加密。然后返回給服務(wù)器。

  4. 服務(wù)器拿到加密后的隨機(jī)數(shù),利用私鑰解密,然后再用解密后的隨機(jī)數(shù)(對稱密鑰),把需要返回的數(shù)據(jù)加密,加密完成后數(shù)據(jù)傳輸給用戶。

  5. 最后用戶拿到加密的數(shù)據(jù),用一開始的那個隨機(jī)數(shù)(對稱密鑰),進(jìn)行數(shù)據(jù)解密。整個過程完成。

當(dāng)然這僅僅是一個單向認(rèn)證,https還會有雙向認(rèn)證,相對于單向認(rèn)證也很簡單。僅僅多了服務(wù)端驗證客戶端這一步。

那么在AFNetworking中,我們要完成自簽名證書配置:

// 自簽名證書在路徑
NSString *certFilePath = [[NSBundle mainBundle] pathForResource:@"service" ofType:@"cer"];
// 自簽名證書轉(zhuǎn)換成二進(jìn)制數(shù)據(jù)
NSData *certData = [NSData dataWithContentsOfFile:certFilePath];
// 將二進(jìn)制數(shù)據(jù)放到NSSet中
NSSet *certSet = [NSSet setWithObject:certData];
/* AFNetworking中的AFSecurityPolicy實例化方法
  第一個參數(shù):
  AFSSLPinningModeNone,  //不驗證
  AFSSLPinningModePublicKey,   //只驗證公鑰
  AFSSLPinningModeCertificate,   //驗證證書
  第二個參數(shù):存放二進(jìn)制證書數(shù)據(jù)的NSSet
*/
AFSecurityPolicy *policy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate withPinnedCertificates:certSet];
// shareManager 是繼承自AFHTTPSessionManager的一個類的實例對象
sharedManager.securityPolicy = policy;

這樣在請求時,如果服務(wù)器要校驗自簽名證書就會調(diào)用AFSecurityPolicy類中以下方法

- (BOOL)evaluateServerTrust:(SecTrustRef)serverTrust
         forDomain:(NSString *)domain

AFNetworking就是在這個方法中進(jìn)行的單向驗證。如果有需要雙向驗證的也需要重寫這個方法,以實現(xiàn)雙向驗證。(雙向驗證在銀行類等app中使用的較多)

在該方法中使用自簽名證書可能會出現(xiàn)的一個問題就是

復(fù)制代碼 代碼如下:


[pinnedCertificates addObject:(__bridge_transfer id)SecCertificateCreateWithData(NULL, (__bridge CFDataRef)certificateData)];

這行代碼有可能數(shù)組中添加了nil,即自簽名證書沒有獲取到。

解決方法:

  1. 將后端發(fā)過來的.crt證書,修改后綴.cer,導(dǎo)入鑰匙串。

  2. 再從鑰匙串導(dǎo)出該證書,拉到項目里直接使用

其本質(zhì)原因是后端的自簽名證書需要進(jìn)行base64反編碼才能使用。

以上是“iOS如何基于AFNetworking下自簽名證書配置”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)頁題目:iOS如何基于AFNetworking下自簽名證書配置
URL鏈接:http://aaarwkj.com/article40/gppseo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站改版、網(wǎng)站收錄、域名注冊網(wǎng)站設(shè)計公司、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司
天天免费日日夜夜夜夜| av在线观看亚洲天堂| 亚洲欧美国产另类综合| 蜜桃免费观看在线视频| 人妻熟妇av在线一区二区三区| 国产成人精品免费视频大| 久久视频在线播放视频| 亚洲少妇午夜福利视频| 夫妻爱爱视频在线观看| 国产交换精品一区二区三区| av中文资源在线观看| 国产精品国产三级国产专播| 色在线观看综合亚洲欧洲| 国欧美一区二区三区| 特黄特色的日本大片| 99精品国产中文字幕| 色婷婷亚洲综合色一区二区| 国产精品亚洲欧美日韩在线播放| 亚洲激情一区在线观看| 日韩精品视频播放一区 | 深夜日本福利在线观看| 久久国产精品人妻av| 亚洲综合色婷婷七月丁香| 人人妻人人澡人人爽精品日本| 中文字幕人妻丝乱一区三区| 成人又黄又爽大片在线观看 | 国产av剧情精品麻豆| 亚洲国产日韩欧美视频| 久久96国产精品久久秘臀| 欧美亚洲国产日韩在线高清| 天天干夜夜操操操操| 啊啊…嗯嗯…用力免费观看视频| 亚洲黄色av一区二区三区| 视频一区日本视频二区| 成人色视频免费在线观看| 精品一区二区在线欧美日韩| 色婷婷一区二区三区网站| 久久久久久亚洲精品人妻| 粉嫩国产精品一区二区| 久热99在线视频免费观看| 国产爆操美女在线观看|