前言
移动端单纯的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
3. 私有化YTKNetwork库,并修改相关代码

该博客介绍了如何通过公钥绑定来加强移动端HTTPS请求的安全性,以避免Charles和Fiddler等工具的简单拦截。步骤包括:从后台获取.cer文件,将.pem或.crt转换为.cer,将cer文件添加到项目中,配置YTKNetwork以使用AFSecurityPolicy进行公钥固定,私有化YTKNetwork库并修改相关代码,最后进行拦截测试确保实施有效。
9110

被折叠的 条评论
为什么被折叠?



