Https遇到的問題,證書轉(zhuǎn)換失敗在[pinnedCertificates addObject:(__bridge_transfer id)SecCertificateCreateWithData(NULL, (__bridge CFDataRef)certificateData)]

1.最近在實現(xiàn)Https的請求,但是在項目導(dǎo)入cer證書后,直接在Afnetworking中斷點崩潰在這里,查找了好多的原因終于找到了問題的所在, 其實是.cer證書轉(zhuǎn)換的時候出現(xiàn)了問題!
2.我們可以找后臺要一下.crt證書,
3.我就用這個指令轉(zhuǎn)換的:openssl x509 -in pn.crt -out ccc.cer -outform der,重新生成一個.cer證書這樣就可以了????
4.希望這個簡書對遇到同樣問題的朋友有所幫助??????

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

首先先實現(xiàn)Https的配置

    //先導(dǎo)入證書,找到證書的路徑
    NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"newll" ofType:@"cer"];
    NSData *certData = [NSData dataWithContentsOfFile:cerPath];
    
    NSSet * certSet = [[NSSet alloc] initWithObjects:certData, nil];
    AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
    // 是否允許,NO-- 不允許無效的證書
    [securityPolicy setAllowInvalidCertificates:YES];
    // 設(shè)置證書
    [securityPolicy setPinnedCertificates:certSet];
     securityPolicy.validatesDomainName = NO;
       
    AFHTTPSessionManager * manager = [AFHTTPSessionManager manager];
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    manager.responseSerializer.acceptableContentTypes=[NSSet setWithObjects:@"application/json", @"text/html",@"text/json", @"text/javascript",@"text/plain", nil];
    //關(guān)閉緩存避免干擾測試
    manager.requestSerializer.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
    manager.securityPolicy=securityPolicy;
    NSString*urlStr=[NSString stringWithFormat:@"%@/userLogin",@"https://192.168.150.239/pnservice"];
    
 NSDictionary*params=@{@"userName":@"18132097435",@"userPassword":@"123456",@"appA":[NSString stringWithFormat:@"%d",a]};
    
    [HTTPTools POST:urlStr parameters:params success:^(id responseObject) {
        if (responseObject)
        {

            NSLog(@"%@",responseObject);
            
            NSString* numberStr=[NSString stringWithFormat:@"%@",responseObject[@"resultCode"]];
            if ([numberStr isEqualToString:@"1"])
            {
            }
            
        }
    } failure:^(NSError *error) {
        if (error)
        {
            NSLog(@"%@",error);

        }
    }];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容