先贴上苹果中国客服电话:有什么问题都可以询问。
这是 我拨打苹果客服回复的邮件:大家可以参考下
接下来说明一些 自建证书的一些坑:
首先:需要搞明白 服务器那边设置的是单项还是双向认证: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.关于前段验证 代码都一样,上面已贴出来。
网友评论
Printing description of error:
Error Domain=NSURLErrorDomain Code=-999 "cancelled" UserInfo={NSErrorFailingURLKey=, NSLocalizedDescription=cancelled, NSErrorFailingURLStringKey=}