只需要服务器验证手机端的童鞋可以点开以下链接【ios 单向配置https】 http://www.cnblogs.com/OC888/p/6560602.html

  兜兜转转弄了一个星期,网上的大多数demo都下来过一遍了,各种偏方都试了,终于配置好了双向配置,网上大多数标题为双向的文章都有不足之处,要么纯粹就是服务器验证手机端的单向认证,要么代码不全,要么demo报错。今天我来终结afn双向配置https这个问题,想知道https原理的可以戳进文章开头,里面有流程解释,此文章只负责代码部分,文章末尾放demo,好使请点赞

第一步,infoplist添加ATS(应用传输秘密设置),如下图:

     什么?看不到。。。后面是什么字母?没错就是这么坑,老汁就是被某人的教程这么坑过整整一天,下面放完整的string:NSExceptionAllowsInsecureHTTPLoads  NSExceptionRequiresForwardSecrecy       NSIncludesSubdomains,依次对应的布尔值为是非是,(此外多加一处报错信息处理方法:报错信息为

NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9801),

这个问题的出现是因为ios9里对TLS的版本配置为1.2;而服务器使用Tomcat配置时,默认为1.0;所以解决方法是在刚才infoplist三个布尔值后添加一对<key>NSExceptionMinimumTLSVersion</key>
      <string>TLSv1.0</string>)如下图:

第二步,需要提前说明的是,务必使用afn3.0或者以上版本,因为afn支持的证书格式从2.x的.cer变成了3.x的.der,所以我私自改了一下AFHTTPSessionManager.m的全部代码,文件在demo中,需要的话直接拉走修改即可,或者直接在本文末尾处复制AFHTTPSessionManager.m的代码,如果自己工程里的afn版本报错没有找到某些方法或者头文件,那就升级成最新版本的afn,然后把新版本里的AFHTTPSessionManager.m的代码用demo的AFHTTPSessionManager.m里的全部代码复制替换。

第三步  添加两个证书,1,【服务器.cer 证书】,包含公钥,客户端用它来加密,然后服务器会用这个证书的私钥解密,这样可以服务器确认发来的消息是正儿八经的app传来的信息

            2,【客户端的.p12证书】,说到p12我就猜想应该是为了不让破解了软件ipa的人拿到证书才导出成p12格式的,但是想不明白为什么【服务器.cer】证书不导成p12?望大神解答疑惑感激不尽,另外问后台要这两个证书的时候记得要p12的密码

第四步 DEMO里面ReSetChallenge的.m和.h是对afn的二次封装,直接拿来食用即可,但是切记要改证书名和p12密码,里面封装了分别返回单向认证和双向认证的

AFHTTPSessionManager方法,最后放demo地址,涉及公司机密本人证书已删除,直接放进证书即可使用(https://github.com/OC888/omits),如果有疑问可直接微博留言,作者会一一回答

转载于:https://www.cnblogs.com/OC888/p/6616583.html

iOS https双向配置相关推荐

  1. iOS https 自制证书 单向 双向 验证,以及服务器(Nginx)配置

    一.http和https的区别与原理 介绍原理的博文太多了,这里列出一篇详细的: IOS 使用自签名证书开发HTTPS文件传输 二.证书的类型和自制证书生成 1.什么是数字证书(Certificate ...

  2. Tomcat服务器配置https双向认证,使用JDK的keytool生成证书(适用于web、安卓、IOS)

    Tomcat服务器配置https双向认证,使用JDK的keytool生成证书(适用于web.安卓.IOS) 一.原理 1.HTTP:平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的( ...

  3. tomcat实现https双向认证配置

    Tomcat实现https双向认证配置 1.生成证书库 2.jks转p12 3.证书库导出cer文件 4.证书库生成证书请求 5.对证书请求进行签名 6.例子 6.1创建证书库 6.2导出根证书 6. ...

  4. nginx配置https双向验证(ca机构证书+自签证书)

    nginx配置https双向验证 服务端验证(ca机构证书) 客户端验证(服务器自签证书) 本文用的阿里云签发的免费证书实验,下载nginx安装ssl,文件夹有两个文件 这两个文件用于做服务器http ...

  5. nginx 配置 https双向认证

    参考文章: https://blog.csdn.net/xiangguiwang/article/details/76400805 https://blog.csdn.net/qq_37049781/ ...

  6. Https双向认证Android客户端配置

    Https双向认证啊  做了两遍,第一遍懵懂状态处于 好不容易做好了,换服务器,一下子懵了,使出浑身解数又找了一遍,这下终于好了  快哭啦,必须滴要记录一下,以免以后遇到继续懵,这里用retrofit ...

  7. HTTPS双向认证配置

    最近看了下HTTPS相关的,概念性的东西各位就去查查资料吧.主要找到两篇比较靠谱的文章,收藏下. xiooa面复制自https://my.oschina.net/jjface/blog/339144 ...

  8. 解决ios的https双向认证不能抓包问题

    一般来说,我们抓https包使用fiddler或charles,然后手机安装证书就可以抓包了,但是有时候我们抓某些app时候,一连上代理,却提示不能上网,明明可以上网,为啥app提示无网络,原因可能就 ...

  9. Apache httpd设置HTTPS双向认证

    一.环境 httpd: 2.4.4  openssl:1.0.1  os:ubuntu 12.04 LTS 二.场景 我准备在httpd上配置一个HTTPS双向认证,既向客户端表明自己的身份,也只允许 ...

最新文章

  1. 博客园今天早上是不是出现什么问题了?
  2. 竞赛提升:必知必会的21篇论文!
  3. 问题解决: 解释器错误: 没有那个文件或目录
  4. ExcelJS —— Node 的 Excel 读写扩展模块2
  5. 什么是JavaServer Faces(JSF)–(第2部分)
  6. eclipse创建folder变成package解决方案
  7. 【文章】孝心无价 作者:毕淑敏
  8. 关于360笔试部分题目小结
  9. 学习 springboot 中出现的问题
  10. 五子棋java源代码博客园_来来来,五子棋源代码
  11. 几个开源项目实体层实现方式比较
  12. 深入浅出 — 数据分析
  13. Vue项目实战之电商后台管理系统(三) 用户管理模块
  14. 使用arcface+CrossEntropyLoss处理普通分类
  15. Steam游戏存档位置大全
  16. Java 分布式服务重复提交解决方案 Redis
  17. 备份一下mysql笔记
  18. cpu、socket、core、thread 等术语之间的关系
  19. VS2010出现重复的代码项原因及解决方式
  20. hadoop - hadoop2.6 伪分布式 示例 wordcount 分词 和 hdfs常用操作命令

热门文章

  1. android视频通信和web端,探讨用webrtc在手机和浏览器之间实现音视频实时通信的实施环境...
  2. xml mysql 模糊查询_mybatis+Spring mysql的模糊查询问题
  3. server.transfer 无法跳转页面_H5 腾讯地图无法导航
  4. 安装卡主_智能温室四周玻璃的安装学问还这么多
  5. fedora mysql gui_fedora8安装 mysql++失败!!装了一个晚上没搞定!!伤心阿!
  6. QImage与Mat之间的相互转换
  7. 图片图层隐写_【软件】imageIN · 图影-隐藏文件到图片,简单轻快的图片隐写工具...
  8. 后台系统可扩展性学习笔记(十)Database Partitioning
  9. 四、规则组织的衍生组织——经向破斜组织数学模型的建立
  10. P2P技术详解(三):P2P中的NAT穿越(打洞)方案详解(进阶分析篇)