Weibo Api 在 iOS10 请求报错

作者: 店长推荐 | 来源:发表于2016-09-01 10:04 被阅读395次

    昨天临近发包的时候,测试告诉我说微博登录 一直报 SSL 验证失败,然后就登录失败了,但是微信跟qq都没有问题。。

    一开始以为自己代码有问题,进行代理抓包后(抓包的步骤),iOS10系统又可以正常登录了,这个就很奇怪了。。。

    Paste_Image.png

    iOS10之前的版本都可以正常登录,代理抓包后也可以正常登录,那只剩下一个可能,就是微博自己的HTTPS证书有问题!!!

    把微博的请求地址放到浏览器中,发现 chrome 也报警告了。。。

    Paste_Image.png

    在搜索解决方法的时候,发现 iOS10 系统对TLS 1.0 加密的证书,是认为无效的,要求加密方式要 TLS 1.2,然后去 weibo 的github 上看看有没有更新SDK (应该早点上去看的。。。后悔),

    原来已经有人提交了 pull request 来解决这个问题 别人提交的解决方案

    <key>NSThirdPartyExceptionMinimumTLSVersion</key> 
    <string>TLSv1.0</string>
    

    1.对传输安全的支持

    在新一代的iOS系统中,默认需要为每次网络传输建立SSL。解决这个问题有两种方法:

    A. 建立白名单并添加到你的app的plsit中

        <key>NSAppTransportSecurity</key>
        <dict>
            <key>NSExceptionDomains</key>
            <dict>
                <key>sina.cn</key>
                <dict>
                    <key>NSIncludesSubdomains</key>
                    <true/>
                    <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
                    <false/>
                    <key>NSThirdPartyExceptionMinimumTLSVersion</key>
                    <string>TLSv1.0</string>
                </dict>
                <key>weibo.cn</key>
                <dict>
                    <key>NSIncludesSubdomains</key>
                    <true/>
                    <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
                    <false/>
                    <key>NSThirdPartyExceptionMinimumTLSVersion</key>
                    <string>TLSv1.0</string>
                </dict>
                <key>weibo.com</key>
                <dict>
                    <key>NSIncludesSubdomains</key>
                    <true/>
                    <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
                    <true/>
                    <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
                    <false/>
                    <key>NSThirdPartyExceptionMinimumTLSVersion</key>
                    <string>TLSv1.0</string>
                </dict>
                <key>sinaimg.cn</key>
                <dict>
                    <key>NSIncludesSubdomains</key>
                    <true/>
                    <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
                    <true/>
                    <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
                    <false/>
                    <key>NSThirdPartyExceptionMinimumTLSVersion</key>
                    <string>TLSv1.0</string>
                </dict>
                <key>sinajs.cn</key>
                <dict>
                    <key>NSIncludesSubdomains</key>
                    <true/>
                    <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
                    <true/>
                    <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
                    <false/>
                    <key>NSThirdPartyExceptionMinimumTLSVersion</key>
                    <string>TLSv1.0</string>
                </dict>
                <key>sina.com.cn</key>
                <dict>
                    <key>NSIncludesSubdomains</key>
                    <true/>
                    <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
                    <true/>
                    <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
                    <false/>
                    <key>NSThirdPartyExceptionMinimumTLSVersion</key>
                    <string>TLSv1.0</string>
                </dict>
            </dict>
        </dict>
    

    如果没有添加可能会遇到"An SSL error has occurred and a secure connection to
    the server cannot be made."这样的问题。

    B. 移除 NSAppTransportSecurity 中的其他设置,只留下 NSAllowsArbitraryLoads,2017年苹果将会拒绝使用该方式的应用。

    <key>NSAppTransportSecurity</key>
        <dict>
            <key>NSAllowsArbitraryLoads</key>
            <true/>
        </dict>
    

    2. 等待微博升级 HTTPS 证书,采用 TLSv1.2 加密方式 (遥遥无期)

    美柚公司内推,有需要可以私信我:


    相关文章

      网友评论

      • Vein_:感谢分享,发现个plsit 单词错了:smile:
      • Jixin:感谢分享,完美解决了我的问题

      本文标题:Weibo Api 在 iOS10 请求报错

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