前言
移动端单纯的https请求无法避免中间者攻击,在请求时进行公钥绑定,可以避免Charles、Fiddler简单拦截就能查看接口明文内容的尴尬。
添加过程
1. 找后台要.cer文件
.pem
转.cer
openssl x509 -inform PEM -in name.pem -outform DER -out name.cer
.crt
转.cer
openssl x509 -in name.crt -out name.cer -outform der
- 自己创建
openssl s_client -connect www.website.com:443 </dev/null 2>/dev/null | openssl x509 -outform DER > myWebsite.cer
2. 将.cer
添加到项目中
2. 在AppDelegate中对YTKNetwork进行相关配置
// !!!: YTKNetworkConfig初始化
YTKNetworkConfig *config = [YTKNetworkConfig sharedConfig];
config.baseUrl = YXBaseURL;
#if ISTEST // 测试环境
#else // 正式环境
AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModePublicKey withPinnedCertificates:[AFSecurityPolicy certificatesInBundle:[NSBundle mainBundle]]];
config.securityPolicy = securityPolicy;
#endif