iOS開發中實現支持HTTPS,有兩種方法:一是後臺那邊都處理好了,移動端直接可以使用HTTPS接口,二是後臺給移動端一個服務器證書cer 文件,這時我們就需要將cer文件導入到我們的工程中,以下是實現方法
1. 雙擊證書,這時證書已經添加到了鑰匙串中
2. 將cer 文件拖入工程中
3. 如果使用的是AFNetwotking 的話,在代碼中添加以下代碼
//AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
AFHTTPSessionManager *manager = [[AFHTTPSessionManager manager] initWithBaseURL:[NSURL URLWithString:url]];
//證書
AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
manager.securityPolicy = securityPolicy;
// 2.設置證書模式
NSString * cerPath = [[NSBundle mainBundle] pathForResource:@"tomcat" ofType:@"cer"]; //tomcat是cer文件的名稱
NSData * cerData = [NSData dataWithContentsOfFile:cerPath];
manager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate withPinnedCertificates:[[NSSet alloc] initWithObjects:cerData, nil]];
// 客戶端是否信任非法證書
manager.securityPolicy.allowInvalidCertificates = YES;
// 是否在證書域字段中驗證域名
[manager.securityPolicy setValidatesDomainName:NO];
至此就已經完成支持HTTPS了
文件參考:
http://www.jianshu.com/p/6b9c8bd5005a
http://www.cnblogs.com/kyrios/p/tls-and-certificates.html