您如何使用 Alamofire 测试证书固定?
Posted
技术标签:
【中文标题】您如何使用 Alamofire 测试证书固定?【英文标题】:How do you test certificate pinning with Alamofire? 【发布时间】:2015-08-04 13:41:40 【问题描述】:所以我按照 Alamofire 在自述文件中关于他们新的服务器信任策略的说明进行操作。从服务器获取证书,将其添加到我的项目中,并在我的项目中实现以下代码:
let serverTrustPolicies: [String: ServerTrustPolicy] = [
"someserver.withvalidcer.com": .PinCertificates(
certificates: ServerTrustPolicy.certificatesInBundle(),
validateCertificateChain: true,
validateHost: true
)
]
let manager = Manager(
configuration: NSURLSessionConfiguration.defaultSessionConfiguration(),
serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)
)
我的问题是如何测试这个?
我尝试将我的基本 api url 更改为我们的测试服务器,该服务器具有不同的有效证书,但 api 调用没有被拒绝。 而且我已经验证了代码在所需的 api 调用上运行。
【问题讨论】:
是 ios 中证书固定的新手。我需要你的帮助。我们需要来自服务器端的任何证书吗?您能否分享任何显示如何将 trustPolice 附加到请求的示例代码?谢谢 【参考方案1】:好问题!
我建议尝试使用一些代理软件来尝试介入 API 调用(Charles Proxy、Burp 等)。启用固定后,所有网络请求都应该失败,因为代理软件将为您提供不正确的证书。然后,如果您禁用证书固定,服务调用应该通过代理正常工作。
另一种方法是临时更改服务器上的证书,您应该会看到 Web 服务也失败了。
【讨论】:
是 iOS 中证书固定的新手。我需要你的帮助。我们需要来自服务器端的任何证书吗?您能否分享任何显示如何将 trustPolice 附加到请求的示例代码?谢谢以上是关于您如何使用 Alamofire 测试证书固定?的主要内容,如果未能解决你的问题,请参考以下文章