IOS验证 HTTPS 请求的证书
2021-12-10 本文已影响0人
大长腿裤子太短
自 iOS9 发布之后,由于新特性App Transport Security的引入,在默认行为下是不能发送 HTTP 请求的。很多网站都在转用 HTTPS,而AFNetworking中的AFSecurityPolicy就是为了阻止中间人攻击,以及其它漏洞的工具。
AFSecurityPolicy主要作用就是验证 HTTPS 请求的证书是否有效,如果 app 中有一些敏感信息或者涉及交易信息,一定要使用 HTTPS 来保证交易或者用户信息的安全。
这里对NSURL进行了重写,实现代理,截取证书,并且对证书进行信息获取以及证书校验。
1.发起网络请求代码:
发起网络请求代码2.重写NSURL代理,因为证书的验证是否通过都是在代理方法里操作的,所以需要对代理重写。
重写代理方法,使用本地钥匙串和服务器钥匙串进行校验。证书解析依赖工具方法:
解析证书依赖的方法3.证书校验通过后,获取证书里面的具体的组织名称信息和主题信息。
解析证书获取证书里面的新subjectstring 就是获取出证书的内容。
解析证书比较繁琐,因为服务器的证书不确定会携带一个或者多个证书,如果服务器有多个证书,取出和自己本地key可匹配的证书,同上的方法解析。