蘋果官方最新消息:原定于2017.1.1強(qiáng)制的https被延期了衣厘,但是具體到什么時(shí)候不確定,等官方通知:
但是https我們勢在必行,那么真正需要我們做的到底是什么呢?一般分為兩種情況:
1.如果我們用的是付費(fèi)的公信機(jī)構(gòu)頒發(fā)的證書任连,標(biāo)準(zhǔn)的https,那么無論我們的客戶端用的是AFN或者原生的NSUrlSession,我們什么都不用做例诀,代理方法也不用實(shí)現(xiàn)随抠,網(wǎng)絡(luò)請求就能正常完成裁着。
2.如果我們用的是自簽名的證書:
? ? * 首先需要在plist文件中,設(shè)置可以返回不安全的請求(關(guān)閉該域名的ATS)拱她。
? ? * 其次跨算,如果我們使用的是NSUrlSession,那么需要我們在代理方法實(shí)現(xiàn):
如果是AFN椭懊,則需要設(shè)置policy:
把證書倒進(jìn)工程之后在AFN里設(shè)置
總結(jié)一下https的驗(yàn)證流程:
就是用戶發(fā)起請求,服務(wù)器響應(yīng)后返回一個(gè)證書步势,證書中包含一些基本信息和公鑰氧猬。
用戶拿到證書后,去驗(yàn)證這個(gè)證書是否合法坏瘩,不合法盅抚,則請求終止。
合法則生成一個(gè)隨機(jī)數(shù)倔矾,作為對稱加密的密鑰妄均,用服務(wù)器返回的公鑰對這個(gè)隨機(jī)數(shù)加密。然后返回給服務(wù)器哪自。
服務(wù)器拿到加密后的隨機(jī)數(shù)丰包,利用私鑰解密,然后再用解密后的隨機(jī)數(shù)(對稱密鑰)壤巷,把需要返回的數(shù)據(jù)加密邑彪,加密完成后數(shù)據(jù)傳輸給用戶。
最后用戶拿到加密的數(shù)據(jù)胧华,用一開始的那個(gè)隨機(jī)數(shù)(對稱密鑰)寄症,進(jìn)行數(shù)據(jù)解密。整個(gè)過程完成矩动。