使用AFNetworking 3.x,只需在网络请求里面添加代码:网络
AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate]; [securityPolicy setAllowInvalidCertificates:NO]; securityPolicy.validatesDomainName = YES; [_sharedAPIClient setSecurityPolicy:securityPolicy];
便可。证书只需加载到项目中,AFNetworking会扫描Bundle中的.cer文件,并使用。code
主要的状况分为:it
1.没有HTTPs CA证书,设置class
[securityPolicy setAllowInvalidCertificates:YES];
则:Charles 的 SSL证书能够抓到HTTPs的包object
2.没有HTTPs CA证书,设置date
[securityPolicy setAllowInvalidCertificates:NO];
则:Charles 的 SSL证书抓不到HTTPs的包请求
3.有HTTPs CA证书,设置项目
[securityPolicy setAllowInvalidCertificates:YES];
则:Charles 的 SSL证书抓不到HTTPs的包证书
4.有HTTPs CA证书,设置文件
[securityPolicy setAllowInvalidCertificates:NO];
则:Charles 的 SSL证书抓不到HTTPs的包
目前来看只有这四种状况。