使用SSL证书开发iOS 9时管理开发环境

时间:2015-12-10 11:56:02

标签: android ios ssl ios-simulator ios9

对于iOS 9,Apple是mandating the use of HTTPS。虽然这一切都很好并且安全,但它迫使我将所有开发/测试服务器转换为HTTPS。我正在为Android和iOS开发。

我已经尝试/看过的事情:

  1. 运行iOS 8 - 不是长期解决方案
  2. 自签名服务器 - 需要向两个平台添加代码。
  3. 添加根证书 - 可能是要走的路,但就花费的时间而言是昂贵的。
  4. 我想知道其他人是如何处理这件事的。理想情况下,我想要一个基于3(或不基于1和2)的解决方案,它可以很好地与模拟器/模拟器配合使用,并且不需要跳过箍并在各种设备上不断修改根证书。

    我还会为iOS提供解决方案(例如#ifdef),因为Android可以保留在HTTP上。

    =============================================== ====================== 更新:12月20日

    1. 我的服务器只是IP地址。没有域名。
    2. 使用plist设置是一个选项。但是,答案必须具体而完整。我希望看到像脚本一样删除“发布”版本的plist设置。 我不是安全人员,但我怀疑为攻击者留下列入白名单的IP地址是一个坏主意。

2 个答案:

答案 0 :(得分:1)

enter image description here

如果您想使用iOS9的HTTP / HTTPS,请将此属性放在info.plist中。

答案 1 :(得分:1)

在iOS9中使用NSURLSession,NSURLConnection时,默认情况下会启用App Transport Security 您可以使用NSExceptionDomains选择退出Info.plist中某些URL的ATS。在NSExceptionDomains字典中,您可以使用ATS显式定义需要例外的URL。您可以使用的例外是:

NSIncludesSubdomains
NSExceptionAllowsInsecureHTTPLoads
NSExceptionRequiresForwardSecrecy
NSExceptionMinimumTLSVersion
NSThirdPartyExceptionAllowsInsecureHTTPLoads
NSThirdPartyExceptionMinimumTLSVersion
NSThirdPartyExceptionRequiresForwardSecrecy

这些密钥中的每一个都允许您在无法支持它们的域上精确地禁用ATS或特定ATS选项。 你可以在这里参考这个问题的答案,

How do I load an HTTP URL with App Transport Security enabled in iOS 9?

Transport security has blocked a cleartext HTTP