iOS AFN https請求設置證書驗證

對于AFN設置https請求犯建,有兩個途徑,一個是避開域名驗證瓜客,一個是配置證書适瓦。下面就來記錄一下這兩個方法,方便以后使用谱仪。(好記性不如爛筆頭)

  • 避開域名驗證

1玻熙、先在info.plist配置

<key>NSAppTransportSecurity</key>  
    <dict>  
 <key>NSAllowsArbitraryLoads</key>  
 <YES/>  
    </dict>  

2、設置AFSecurityPolicy

    AFSecurityPolicy *securityPolicy = [AFSecurityPolicy defaultPolicy];
    securityPolicy.validatesDomainName = NO;
    securityPolicy.allowInvalidCertificates = YES;
     AFHTTPSessionManager *sessionManager = [AFHTTPSessionManager manager];
    sessionManager.securityPolicy = securityPolicy;
  • 配置證書

1疯攒、先去網(wǎng)站上下載證書嗦随,如下圖所示


image.png

image.png

如果服務端給的是crt后綴的證書,因為iOS客戶端用到的cer證書卸例,所以需要自行轉換称杨;
.crt轉.cer證書方法:
同樣方法將.crt證書下載到桌面上,打開終端筷转,cd到.crt證書的路勁下姑原,
執(zhí)行命令
openssl x509 -in 你的證書.crt -out 你的證書.cer -outform der
就會在桌面上看到一個.cer的證書。雙擊導入電腦呜舒,然后在鑰匙串中找到證書锭汛,并設置信任。
直接把轉換好的cer文件拖動到工程中
2袭蝗、在AFN里面設置

    AFHTTPSessionManager *sessionManager = [[AFHTTPSessionManager manager] initWithBaseURL:[NSURL URLWithString:Base_URL]];
    [sessionManager setSecurityPolicy:[self customSecurityPolicy]];
- (AFSecurityPolicy *)customSecurityPolicy {
    
    // 先導入證書 證書由服務端生成唤殴,具體由服務端人員操作
    NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"app.wangdasong.top" ofType:@"cer"];//證書的路徑
    NSData *cerData = [NSData dataWithContentsOfFile:cerPath];
    
    // AFSSLPinningModeCertificate 使用證書驗證模式
    AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
    // allowInvalidCertificates 是否允許無效證書(也就是自建的證書),默認為NO
    // 如果是需要驗證自建證書到腥,需要設置為YES
    securityPolicy.allowInvalidCertificates = YES;
    
    //validatesDomainName 是否需要驗證域名朵逝,默認為YES;
    //假如證書的域名與你請求的域名不一致,需把該項設置為NO乡范;如設成NO的話配名,即服務器使用其他可信任機構頒發(fā)的證書啤咽,也可以建立連接,這個非常危險渠脉,建議打開宇整。
    //置為NO,主要用于這種情況:客戶端請求的是子域名芋膘,而證書上的是另外一個域名鳞青。因為SSL證書上的域名是獨立的,假如證書上注冊的域名是www.google.com为朋,那么mail.google.com是無法驗證通過的臂拓;當然,有錢可以注冊通配符的域名*.google.com潜腻,但這個還是比較貴的埃儿。
    //如置為NO,建議自己添加對應域名的校驗邏輯融涣。
    securityPolicy.validatesDomainName = NO;
    
    securityPolicy.pinnedCertificates = [[NSSet alloc]initWithObjects:cerData, nil];
    
    return securityPolicy;
}  

錯誤信息收錄(以后遇到會持續(xù)更新)

A security policy configured with AFSSLPinningModeCertificate can only be applied on a manager with a secure base URL (i.e. https)
其實這個錯誤已經(jīng)告訴我們是證書安全的問題童番,我們在封裝網(wǎng)絡請求的時候

AFHTTPSessionManager * manager = [AFHTTPSessionManager manager];//只寫了這部分,現(xiàn)在要求這樣寫:
AFHTTPSessionManager * manager = [[AFHTTPSessionManager manager]initWithBaseURL:[NSURL URLWithString:url]];//URL就是你們服務器的URL前綴

??[AFHTTPSessionManager manager]這個需要寫個單例威鹿,不然就會內(nèi)存泄漏

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末剃斧,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子忽你,更是在濱河造成了極大的恐慌幼东,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件科雳,死亡現(xiàn)場離奇詭異根蟹,居然都是意外死亡,警方通過查閱死者的電腦和手機糟秘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門简逮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人尿赚,你說我怎么就攤上這事散庶。” “怎么了凌净?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵悲龟,是天一觀的道長。 經(jīng)常有香客問我冰寻,道長须教,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任斩芭,我火速辦了婚禮轻腺,結果婚禮上羹奉,老公的妹妹穿的比我還像新娘。我一直安慰自己约计,他們只是感情好,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布迁筛。 她就那樣靜靜地躺著煤蚌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪细卧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機與錄音晚碾,去河邊找鬼团赁。 笑死,一個胖子當著我的面吹牛止邮,可吹牛的內(nèi)容都是我干的这橙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼导披,長吁一口氣:“原來是場噩夢啊……” “哼屈扎!你這毒婦竟也來了?” 一聲冷哼從身側響起撩匕,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鹰晨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后止毕,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體模蜡,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年扁凛,在試婚紗的時候發(fā)現(xiàn)自己被綠了忍疾。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡令漂,死狀恐怖膝昆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情叠必,我是刑警寧澤荚孵,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站纬朝,受9級特大地震影響收叶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜共苛,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一判没、第九天 我趴在偏房一處隱蔽的房頂上張望蜓萄。 院中可真熱鬧,春花似錦澄峰、人聲如沸嫉沽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绸硕。三九已至,卻和暖如春魂毁,著一層夾襖步出監(jiān)牢的瞬間玻佩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工席楚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留咬崔,地道東北人。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓烦秩,卻偏偏與公主長得像垮斯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子只祠,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

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