具有自签名证书的 AFNetwork

AFNetwork With Self Signed Certificate

我正在尝试为我的 IOS 应用程序设置自签名 SSL 证书,该应用程序具有 REST 后端。

我的问题是我应该使用 [securityPolicy setAllowInvalidCertificates:YES];我们什么时候使用自签名证书?没有受信任的证书?

我不明白确切的机制,但我阅读了数小时有关 SSL 的内容。它适用于 setAllowInvalidCertificates:YES,否则我会收到 1012 错误。

My question is should I use [securityPolicy setAllowInvalidCertificates:YES]; when we use self signed certificates? And NO with trusted certificates?

没有!这会破坏 SSL 的全部目的,因为它会使中间人攻击成为可能。最好使用 public key pinning。我不知道如何使用 AFNetwork 执行此操作,但链接的资源具有适用于许多环境的代码。

是的,您应该设置 [securityPolicy setAllowInvalidCertificates:YES];使用自签名证书时。并且正确;您应该将 NO 与受信任的证书一起使用。

当它设置为 NO 时,您可能仍然会遇到错误,因为您的证书链的一部分不受信任。尝试使用名为 SSL Detective 的应用程序来确保整个链都是可信的,没有红色(不可信)组件。 AFNetworking 不喜欢那些。