iOS 采用https 请求,请问我需要修改一些代码吗?

问题大致描述如下:

我用的不是自签名的证书,是向CA购买的ssl证书,请问如何在iOS App中引用并访问Https,具体该如何做呢?
目前我已经处理。但是同时产生了一个问题,如何在UIWebview中不验证子域名的域名地址。

阅读 4.6k
2 个回答
  • 有CA证书的话不需要你做什么。

  • 有些域名没有证书的话,http请求可以禁用安全验证,比如用AFNetworking:

AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
securityPolicy.allowInvalidCertificates = YES;

[AFHTTPSessionManager manager].securityPolicy = securityPolicy;
  • UIWebView 里据我所知,不使用私有方法的话做不到跳过验证。不过你可以接管整个网页加载,在shouldRequest...里返回NO,然后使用 AFNetworking 下载然后 loadHTML

  • 既然域名没有https证书,那就直接用http好了,在Info.plist里配置下域名白名单:

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>your-domain.com</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
            </dict>   
         </dict>
   </dict>

或者直接允许全部http,因为有些第三方库可能还用的是http:

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
  • 建议将app内使用的所有域名都搞成 https ,因为明年苹果会强制所有app内请求都得是 https

iOS 支持 https 不需要你修改什么代码
检查服务端吧


问题修改了。。不验证子域名又是什么
你定义了 abc.com 和 d.abc.com 然后其中一个配置了 ca 证书另外一个没有?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题