Ios 使用AFN网络的自定义信任存储

Ios 使用AFN网络的自定义信任存储,ios,certificate,afnetworking,truststore,Ios,Certificate,Afnetworking,Truststore,我正在开发一些iOS应用程序,我正在下载/上传非常敏感的数据。 我正在使用AFNetworking来满足这些请求,我的问题很简单: 我在所有应用程序中只获得3个不同的证书,我可以自定义AFNetworking的层以仅接受这3个证书吗 此操作的目的是避免“中间人”攻击,从而避免在HTTP交换期间注入和/或检索任何附加信息。所有AFNetworking操作都继承自AFURLConnectionOperation,它定义了一个名为authenticationChallenge的块。在操作中设置此块将定

我正在开发一些iOS应用程序,我正在下载/上传非常敏感的数据。 我正在使用AFNetworking来满足这些请求,我的问题很简单: 我在所有应用程序中只获得3个不同的证书,我可以自定义AFNetworking的层以仅接受这3个证书吗


此操作的目的是避免“中间人”攻击,从而避免在HTTP交换期间注入和/或检索任何附加信息。

所有AFNetworking操作都继承自AFURLConnectionOperation,它定义了一个名为
authenticationChallenge
的块。在操作中设置此块将定义AFNetworking如何响应NSURLConnectionLegate方法
连接:didReceiveAuthenticationChallenge:
。具体来说,您需要检查
挑战.建议的凭证

如果不想在每个操作上设置此块,还可以对正在使用的操作类型进行子类化(例如,像AFJSONRequestOperation),并覆盖
连接:

willSendRequestForAuthenticationChallenge:
具有您想要的行为。

通常,我们希望有关堆栈溢出的问题基于实际问题。到目前为止,你尝试了什么,为什么没有成功?谢谢你的回复,是的,我知道,一般来说,这是一个基于问题的论坛。我什么也没试过,因为iOS上这个非常有名的库没有论坛/帮助部分,完全是基于挑战/ssl/证书问题。而且我知道我的问题非常精确(因此对每个人都没有用处),这就是为什么我更喜欢在SOThank you上发表文章!!这正是我想要的。@JulienG有一种更简单的方法可以通过AFNetworking本身来实现,而不是下拉和重写NSURLConnection方法。看我的。基本上,您可以将证书添加到应用程序包中,并在AFHttpClient上设置DefaultSSLPiningMode。如果它回答了你的问题,我可以把它扩展成一个答案。你应该使用@davidcarun的建议。我错误地认为SSLPining将限制限制限制为1个证书。是的,这更清楚。花掉它,我会给你复选框:)