配置https證書


后台同事給的事.pem和.key文件,項目中要用cer證書,所以要轉一下

pem證書轉cer證書 命令:

1.openssl pkcs12 -export -out cacert.p12 -in cacert.pem -inkey cacert.key   先轉p12

2.openssl pkcs12 -in cacert.p12 -out mycerts.crt -nokeys -clcerts    再轉crt

3.openssl x509 -inform pem -in mycerts.crt -outform der -out mycerts.cer  最后轉cer

引用證書代碼:

   _sessionManager = [[AFHTTPSessionManager manager] initWithBaseURL:[NSURL URLWithString:ServerPath]];
    // 設置請求的超時時間
    _sessionManager.requestSerializer.timeoutInterval = 30.f;
    NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"teststudent" ofType:@"cer"];//證書的路徑   
 NSData *cerData = [NSData dataWithContentsOfFile:cerPath];
    // 使用證書驗證模式
    AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
    // 如果需要驗證自建證書(無效證書),需要設置為YES
    securityPolicy.allowInvalidCertificates = YES;
    // 是否需要驗證域名,默認為YES;
    securityPolicy.validatesDomainName = validatesDomainName;
    securityPolicy.pinnedCertificates = [[NSSet alloc] initWithObjects:cerData, nil];
    [_sessionManager setSecurityPolicy:securityPolicy];

AFHTTPSessionManager注意一定要 initWithBaseURL 添加baseurl,直接[AFHTTPSessionManager manager]會報錯:

A security policy configured with `AFSSLPinningModeCertificate` can only be applied on a manager with a secure base URL (i.e. https)。閃退

 


免責聲明!

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



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