iOS客户端校验https网络请求证书

本文介绍了iOS客户端如何进行HTTPS证书验证,特别是当需要使用指定CA证书而非系统默认信任列表进行校验的情况。通过自定义校验,可以防止如Fiddler等工具通过自签名证书截取HTTPS请求数据。文中以NSURLConnection为例,讲解了代理方法的使用来实现这一目标。
摘要由CSDN通过智能技术生成

其实iOS系统的网络请求都有校验,比如NSURLConnection、NSURLSession都有系统的自动校验。具体的校验可进行百度

我使用的是NSURLConnection进行的网络请求,NSURLConnection是代理回调的请求方式,其中有两个代理方法是用于进行校验证书的

另外我说一下我们的需求,我们要求使用指定的CA证书进行校验不能使用系统的校验,系统的校验可自行百度,他校验证书的信任列表。但是如果我使用fiddler 进行抓取https,让fiddler自己生成一个自签名的证书,然后把这个证书装到客户端信任列表,那么fiddler就能获取https请求数据,因为系统的校验证书是可以校验通过的,所以我们要禁止这种截获数据,因此有了自定义校验证书

好了 不多说了 上代码

//https 证书验证
- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)prote {
    ///NO 系统进行管理  YES 调用connection: didReceiveAuthenticationChallenge 进行验证
    return YES;
}
//手动验证 https 证书
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
    // 获取der格式CA证书路径
    NSString *certPath = [[NSBundle mainBundle] pathForResource:@"CustomCA" ofType:&#
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值