如何用Alamofire测试证书固定?



所以我按照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调用上运行。

问得好!

我建议尝试使用一些代理软件来尝试进入API调用的中间(Charles proxy, Burp等)。当启用绑定时,所有网络请求都应该失败,因为代理软件将为您提供错误的证书。然后,如果您禁用证书绑定,服务调用应该通过代理正常工作。

另一种方法是临时更改服务器上的证书,您应该会看到web服务也失败。

最新更新