使用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的包
目前來看只有這四種狀況。