SDWebImage導(dǎo)入自簽證書(shū)加載https圖片

最近調(diào)試SDWebImage加載自簽的https圖片時(shí)怎么也無(wú)法繞過(guò)驗(yàn)證苞俘。

換個(gè)思路,將自簽證書(shū)導(dǎo)入到SDWebimage使用的URLSession中龄章。

具體方法如下:

SDWebimageDownloader.m中添加URLSession代理方法

- (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential * _Nullable credential))completionHandler{
NSLog(@"證書(shū)認(rèn)證");
if ([[[challenge protectionSpace] authenticationMethod] isEqualToString: NSURLAuthenticationMethodServerTrust]) {
do{
    SecTrustRef serverTrust = [[challenge protectionSpace] serverTrust];
    NSCAssert(serverTrust != nil, @"serverTrust is nil");
    if(nil == serverTrust)                break;
    /* failed */
    /**
     *  導(dǎo)入多張CA證書(shū)(Certification Authority吃谣,支持SSL證書(shū)以及自簽名的CA),請(qǐng)?zhí)鎿Q掉你的證書(shū)名稱
     */
    NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"證書(shū)名字_cerName" ofType:@"cer"];
    //自簽名證書(shū)
    NSData* caCert = [NSData dataWithContentsOfFile:cerPath];

    NSCAssert(caCert != nil, @"caCert is nil");
    if(nil == caCert)                break;
    /* failed */
    SecCertificateRef caRef = SecCertificateCreateWithData(NULL, (__bridge CFDataRef)caCert);
    NSCAssert(caRef != nil, @"caRef is nil");
    if(nil == caRef)                break;
    /* failed */
    //可以添加多張證書(shū)
    NSArray *caArray = @[(__bridge id)(caRef)];
    NSCAssert(caArray != nil, @"caArray is nil");
    if(nil == caArray)                break;
    /* failed */
    //將讀取的證書(shū)設(shè)置為服務(wù)端幀數(shù)的根證書(shū)
    OSStatus status = SecTrustSetAnchorCertificates(serverTrust, (__bridge CFArrayRef)caArray);
    NSCAssert(errSecSuccess == status, @"SecTrustSetAnchorCertificates failed");
    if(!(errSecSuccess == status))                break;
    /* failed */
    SecTrustResultType result = -1;
    //通過(guò)本地導(dǎo)入的證書(shū)來(lái)驗(yàn)證服務(wù)器的證書(shū)是否可信
    status = SecTrustEvaluate(serverTrust, &result);
    if(!(errSecSuccess == status))                break;
    /* failed */
    NSLog(@"stutas:%d",(int)status);
    NSLog(@"Result: %d", result);
    BOOL allowConnect = (result == kSecTrustResultUnspecified) || (result == kSecTrustResultProceed);
    if (allowConnect) {
        NSLog(@"success");
    }else {
        NSLog(@"error");
    }

    /* kSecTrustResultUnspecified and kSecTrustResultProceed are success */
    if(! allowConnect)            {
        break;
        /* failed */
    }
    #if 0
    /*
     Treat kSecTrustResultConfirm and kSecTrustResultRecoverableTrustFailure as success 
     */

    /*   since the user will likely tap-through to see the dancing bunnies */
    if(result == kSecTrustResultDeny || result == kSecTrustResultFatalTrustFailure || result == kSecTrustResultOtherError)                break;
    /* failed to trust cert (good in this case) */
    #endif
    // The only good exit point
    NSLog(@"信任該證書(shū)");
    NSURLCredential *credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
    completionHandler(NSURLSessionAuthChallengeUseCredential,credential);

    return [[challenge sender] useCredential: credential forAuthenticationChallenge: challenge
];
}while(0);
}
// Bad dog
NSURLCredential *credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
completionHandler(NSURLSessionAuthChallengeCancelAuthenticationChallenge,credential);

return [[challenge sender] cancelAuthenticationChallenge: challenge];
}

證書(shū)名字_cerName 的位置填上自簽證書(shū)的名字做裙,即可將證書(shū)導(dǎo)入到SDWebimage的請(qǐng)求中岗憋,也可以添加多張證書(shū)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末锚贱,一起剝皮案震驚了整個(gè)濱河市仔戈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拧廊,老刑警劉巖监徘,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異吧碾,居然都是意外死亡凰盔,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)滤港,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)廊蜒,“玉大人趴拧,你說(shuō)我怎么就攤上這事∩蕉#” “怎么了著榴?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)屁倔。 經(jīng)常有香客問(wèn)我脑又,道長(zhǎng),這世上最難降的妖魔是什么锐借? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任问麸,我火速辦了婚禮,結(jié)果婚禮上钞翔,老公的妹妹穿的比我還像新娘严卖。我一直安慰自己,他們只是感情好布轿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布哮笆。 她就那樣靜靜地躺著,像睡著了一般汰扭。 火紅的嫁衣襯著肌膚如雪稠肘。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,208評(píng)論 1 299
  • 那天萝毛,我揣著相機(jī)與錄音项阴,去河邊找鬼。 笑死笆包,一個(gè)胖子當(dāng)著我的面吹牛环揽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播庵佣,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼薯演,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了秧了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤序无,失蹤者是張志新(化名)和其女友劉穎验毡,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體帝嗡,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡晶通,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哟玷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狮辽。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡一也,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出喉脖,到底是詐尸還是另有隱情椰苟,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布树叽,位于F島的核電站舆蝴,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏题诵。R本人自食惡果不足惜洁仗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望性锭。 院中可真熱鬧赠潦,春花似錦、人聲如沸草冈。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)疲陕。三九已至方淤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蹄殃,已是汗流浹背携茂。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留诅岩,地道東北人讳苦。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像吩谦,于是被迫代替她去往敵國(guó)和親鸳谜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

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

  • 由于蘋(píng)果規(guī)定2017年1月1日以后式廷,所有APP都要使用HTTPS進(jìn)行網(wǎng)絡(luò)請(qǐng)求咐扭,否則無(wú)法上架,因此研究了一下在iOS...
    VincentHK閱讀 820評(píng)論 0 6
  • 前不久做了一個(gè)生成快照的需求滑废,其中用到 SDWebImage 來(lái)下載圖片蝗肪,在使用該框架的過(guò)程中也遇到了一些問(wèn)題,索...
    ShannonChenCHN閱讀 14,067評(píng)論 12 241
  • 這個(gè)世界充滿假象蠕趁,唯有痛苦從不說(shuō)謊…… 有人說(shuō)薛闪,背上行囊,就是過(guò)客俺陋;放下包袱豁延,就找到了故鄉(xiāng)昙篙。其實(shí)我們每個(gè)人都明白,...
    永遠(yuǎn)的浩子閱讀 142評(píng)論 0 1
  • 已宅一天 半天覽文诱咏,半天打游戲苔可,無(wú)閑做飯 我餓 夜深,天亮去買(mǎi)雞腿肉胰苏,做鹽酥雞 我要吃個(gè)夠
    甲骨文輸入法閱讀 430評(píng)論 0 0
  • 步入假期已經(jīng)好多天了硕蛹,自己除了每天的貪睡玩手機(jī)外,就是做些簡(jiǎn)單的家務(wù)活硕并,本來(lái)計(jì)劃好的減肥法焰,學(xué)習(xí),但還是隨著愜意...
    胖胖胖胖胖的不忘閱讀 302評(píng)論 0 0