闲来无事把项目重构了一遍
网络请求遇到一些麻烦,之前服务器https使用的是自建证书,项目使用的AFNetworking网络请求库,根据网上大多数博客的教程,请求数据没有问题
后来,公司买了真的CA证书,也就是换掉了自建证书,按道理,AFNetworking是不需要任何配置的,但是发现线上环境一切正常,切换DNS到线下,发现报(-9801)的错误.
经查阅:
ios9里对TLS的版本配置为1.2;而服务器使用Tomcat配置时,默认为1.0;
APP端,工程里的info.list 配置TLS的最低版本为1.0 方法:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<!--你的https域名-->
<key>xxxxxx.com</key>
<dict>
<!--允许子域-->
<key>NSIncludesSubdomains</key>
<true/>
<!--TLS允许的最低版本号-->
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
</dict>
</dict>
</dict>
问题解决!
但是不明白为什么切换DNS到线下环境,就会报错,而线上可以,据服务器人员说,线下线上证书是一样的!