iOS https证书验证

作者: 阿两sama | 来源:发表于2017-01-07 14:24 被阅读170次

因为苹果审核原因项目需要添加证书验证,下面写下实现过程

1.拿到服务器颁布的证书,cer证书。我们服务器用的是腾讯的免费ssl证书。

2.吧证书拖入项目,注意要看下Build Phases>copy Bundle Resources 中是否已经导入了,没有的话要手动导入一下。

3.为网络框架添加证书验证,因为我用的是AFNetworking本身就支持https证书验证

AFHTTPSessionManager *session = [AFHTTPSessionManager manager];

//设置返回类型

session.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/plain"];

session.requestSerializer.timeoutInterval = 60;//请求超时时间

[session setSecurityPolicy:[self customSecurityPolicy]];//证书验证

NSString *url = [NSString stringWithFormat:@"%@%@", API_HOST, cmd.addr];

NSDictionary*dic=[cmd toDicData];//提交参数

NSURLSessionDataTask *request;

request=[session POST:url parameters:dic progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

//请求成功网络返回自行处理

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

if (failed) {

NSString* errors = error.localizedFailureReason;

if(IS_EMPTY(errors)) {

errors = @"网络异常";

}

failed(nil, errors);

}

}];

customSecurityPolicy证书方法

- (AFSecurityPolicy*)customSecurityPolicy

{

// /先导入证书

NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"你的证书名字" ofType:@"cer"];//证书的路径

NSData *certData = [NSData dataWithContentsOfFile:cerPath];

// AFSSLPinningModeCertificate 使用证书验证模式

AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];

// allowInvalidCertificates 是否允许无效证书(也就是自建的证书),默认为NO

// 如果是需要验证自建证书,需要设置为YES

securityPolicy.allowInvalidCertificates = YES;

//validatesDomainName 是否需要验证域名,默认为YES;

//如置为NO,建议自己添加对应域名的校验逻辑。

securityPolicy.validatesDomainName = NO;

NSSet *certificateSet  = [[NSSet alloc] initWithObjects:certData, nil];

[securityPolicy setPinnedCertificates:certificateSet];

return securityPolicy;

}

以上证书验证就完成了,客户端比较简单,服务器配置生成证书就比较复杂,有时间我就写一下服务器端流程。第一次用简书写文代码格式不知道怎么弄。。。。。

相关文章

  • iOS https证书验证

    因为苹果审核原因项目需要添加证书验证,下面写下实现过程 1.拿到服务器颁布的证书,cer证书。我们服务器用的是腾讯...

  • 【技术文章收集】提升

    GPUImage详细解析(十二)Sobel边界检测 https iOS 中 HTTPS 证书验证浅析 iOS 升级...

  • iOS HTTPS自建证书验证

    前言 公司项目由HTTP转为HTTPS,需要对网络请求进行自建证书验证。主要是AFNetWorking、SDWeb...

  • iOS - HTTPS自制证书验证

    证书类型 从权威认证机构购买的证书优点:服务端如果使用的是这类证书的话,那么客户端一般不需要做什么,直接使用HTT...

  • 【iOS开发】Https 原理与验证过程

    一、参考文章HTTPS 基础OpenSSL 与 SSL 数字证书概念贴iOS 中对 HTTPS 证书链的验证二、学...

  • https证书验证

    废话开篇:https 证书是什么?如何进行认证呢?带着这些疑问来简单的实现一下验证过程 简单的了解一下 https...

  • 【HTTP】Https 原理与验证过程

    Https 原理与验证过程 一、参考文章 HTTPS 基础OpenSSL 与 SSL 数字证书概念贴 iOS 中对...

  • iOS 中 HTTPS 证书验证浅析

    本文来自于腾讯Bugly公众号(weixinBugly),原文地址:https://mp.weixin.qq.co...

  • iOS 中 HTTPS 证书验证浅析

    在 WWDC 16 中,Apple 表示, 从 2017年1月1日起(最新消息, 实施时间已延期),所有新提交的 ...

  • iOS 中 HTTPS 证书验证浅析

    iOS 中 HTTPS 证书验证浅析 一、HTTPS请求过程 下面看一个普通的HTTPS请求过程: 第一阶段:Cl...

网友评论

  • SmallWhiteMouse:你可以试试markDown语法 写文章
  • 羽之_HB:免费证书 你怎么解决分享出去的内容呢,是http 还是https,
    阿两sama:分享出去的内容用的是http的

本文标题:iOS https证书验证

本文链接:https://www.haomeiwen.com/subject/ddrrkttx.html