美文网首页iOS开发精进iOS开发资料收集区ReactiveCocoa
AFNetworking 3.0 支持https自建证书单向认证

AFNetworking 3.0 支持https自建证书单向认证

作者: 雪_晟 | 来源:发表于2016-12-09 11:10 被阅读541次

    先贴上苹果中国客服电话:有什么问题都可以询问。

     这是 我拨打苹果客服回复的邮件:大家可以参考下

       接下来说明一些 自建证书的一些坑:

    首先:需要搞明白 服务器那边设置的是单项还是双向认证:clientAuth="false",clientAuth决定是单项还是双向认证,这个一定要确定好,否则前台验证要走很多弯路。关于单项认证还是双向认证参考这篇文章:HTTPS单向认证和双向认证 看了很多 就这篇很清晰。

    在 前端配置之前一定要看完上述推荐的文章。因为采用的是单项验证所以后台在生成证书的时候设置clientAuth="false"。通过上面的文章,服务器会生成 csr - cer  这些都是根据ca证书生成的。切记 :单项  服务器最终只会生成一个证书.cer。---->这个就是我们前端需要的。(很多文章里表示单项验证不需要服务器提供给前端证书,但是 后面如果我们使用这个证书,是无法请求到数据的)。服务器生成cer证书之后,可以在网页上(自建证书在火狐上是不支持的,在safari 或者谷歌上都可以,建议使用谷歌,因为正确的https链接会是绿色验证)测试接口,测试之前没有导入证书,可以看到接口的https 是红色,表示不安全。在 谷歌上 测试接口,然后信任服务器给我们的.cer,然后你会看到这样:

    这就代表 https 单项验证基本完成。

    然后看下AFNetworking3.0  代码部分:

    只需要在封装的网络请求类中设置安全策略:

    这个证书 是服务器给我们的,拖入bundle路径下即可。

    如此,AFNetworking 3.0 支持https自建证书单向认证 基本就完成了。

    切记:1. 如果是单向认证,服务器在配置的时候必须设置clientAuth="false"

               2. 单向认证,服务器只会生成一个最终的文件.cer(有文章中提到3.0是.der,我这边测试.cer 可以通过),不会有其他什么client.cer.!

              3.关于前段验证 代码都一样,上面已贴出来。

    相关文章

      网友评论

      • 鹏飞九天324:我也是这样写的,但是一直不能调用成功,报的错:
        Printing description of error:
        Error Domain=NSURLErrorDomain Code=-999 "cancelled" UserInfo={NSErrorFailingURLKey=, NSLocalizedDescription=cancelled, NSErrorFailingURLStringKey=}
        雪_晟:@鹏飞九天324 这是说明 请求一被发起 就被取消了 ,建议你先检查下证书
        雪_晟:@鹏飞九天324 你有没有先验证证书 看证书是不是正确的,我们后台第一次给的证书不对

      本文标题:AFNetworking 3.0 支持https自建证书单向认证

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