In order to validate a domain name for self signed certificates, you MUST use pinning,AFNetWorking使用自簽證書時出現問題。


上述問題的解決方法:

//如果是需要驗證自建證書,需要設置為YES
securityPoliy.allowInvalidCertificates = YES;
securityPoliy.validatesDomainName = NO;//不驗證證書的域名

 

HTTPS步驟:

1.從服務器要來 .crt格式的證書,然后用Mac鑰匙串打開,然后導出 .cer格式的證書

2.把 .cer證書導入程序的 NSBundle中。

 

驗證證書的代碼:

    NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"cer"];
    NSData *cerData = [NSData dataWithContentsOfFile:cerPath];
    NSSet *cerSet = [[NSSet alloc]initWithObjects:cerData, nil];
    AFSecurityPolicy *securityPoliy = [AFSecurityPolicy defaultPolicy];
    //allowInvalidCertificates 是否允許無效證書(也就是自建的證書),默認為NO
    //如果是需要驗證自建證書,需要設置為YES
    securityPoliy.allowInvalidCertificates = YES;
    securityPoliy.validatesDomainName = NO;
    //設置證書
    [securityPoliy setPinnedCertificates:cerSet];
    [dxClient setSecurityPolicy:securityPoliy];

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM