gpt4 book ai didi

ios - 如何允许用户在 iOS 中使用 AFNetworking 信任和固定自签名 SSL 证书

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:19:18 25 4
gpt4 key购买 nike

我正在开发一个供企业使用的 iOS 应用程序。我们的应用程序将与服务器通信,该服务器可能配置有部署我们的服务器软件的公司生成的自签名证书。

我们的 iOS 应用程序正在使用允许 SSL Pinning 的 AFNetworking。但我的印象是,这只会固定在创建应用程序包时作为应用程序包的一部分包含的 SSL 证书。它不允许您使用 iOS 设备稍后会识别的证书。

我正在寻找一种方法让客户推出(可能通过配置文件)自签名证书,以便我们的应用程序可以安全地与服务器对话。有办法吗?或者我是否需要跳过 AFNetworking 并直接使用 Foundation 类。

我也欢迎任何评论来帮助澄清这个问题。

更新:对于可能和我一样困惑的其他人。虽然我知道固定是一个重要的话题,但我将它与我的首要任务混淆了:从我们的原型(prototype)应用程序中删除对无效证书的支持。我想要的是一种让用户明确信任自签名证书的方法。这很简单。只需将其作为配置文件添加到您的 iOS 设备即可。但我也被这样一个事实所困扰,即我们在开发中使用的自签名证书并不完全正确,因此 iOS 不会信任它们。参见 http://blog.httpwatch.com/2013/12/12/five-tips-for-using-self-signed-ssl-certificates-with-ios/关于如何生成“良好”的自签名证书。现在我已经信任了自签名证书,我将跟进如何使用固定。

最佳答案

你是对的,AFSecurityPolicy 有一个属性 pinnedCertificates如果您使用 policyWithPinningMode:,则默认使用应用程序包中的任何证书工厂方法。

要使用您自己的证书,请将此属性设置为包含 NSData 的 NSArray。每个用户证书的表示:

AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
NSData *certificateData = [NSData dataWithContentsOfFile...
securityPolicy.pinnedCertificates = @[ certificateData ];

关于ios - 如何允许用户在 iOS 中使用 AFNetworking 信任和固定自签名 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21269457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com