【问题标题】:Need the default SSL certificate validation in iOS app需要 iOS 应用中的默认 SSL 证书验证
【发布时间】:2016-10-17 07:06:44
【问题描述】:

iOS 应用需要基本的 ssl 验证来保护客户端-服务器通信。我需要一种方法来避免可能具有客户端-服务器依赖关系的 SSL 固定,并且如果 SSL 证书发生更改,则需要更新应用程序。

有没有办法允许任何受信任的 CA 颁发的所有有效 SSL 证书?

【问题讨论】:

  • 哇。在你开始固定之前,你检查过developer.apple.com/library/content/documentation/…吗? “通过 TLS 连接到 URL 很简单。当您创建 NSURLRequest 对象以提供给 initWithRequest:delegate: 方法时,指定 https 作为 URL 的方案而不是 http。连接自动使用 TLS,没有附加配置。”
  • 尝试了上述方法,但我仍然能够使用代理服务器中断响应。
  • 发布你的 Https 连接代码。

标签: ios ssl https ssl-certificate


【解决方案1】:

如果您正在寻找绕过苹果强加的传输安全层的方法,您可以这样做。

将以下代码放入您的 plist 文件中

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

* 这将禁用传输安全层并允许您连接到不安全的源。请注意,Apple 不建议这样做,您应该始终使用 TLS *

查看此链接以更好地了解 Apple 的 App Transport Security。此链接中可能有一些键,您可以配置这些键来实现您正在寻找的东西

http://www.neglectedpotential.com/2015/06/working-with-apples-application-transport-security/

【讨论】:

  • 以上将绕过所有证书。有没有我们可以只允许受信任的 CA 颁发的 SSL 证书?
  • 我浏览了您发布的链接。问题是我们如何避免中间人攻击?目前,API 响应可以使用代理服务器中断并能够操纵响应。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-21
  • 2013-09-12
  • 2021-11-18
  • 1970-01-01
  • 2017-06-13
  • 2019-03-29
相关资源
最近更新 更多