所以我按照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服务也失败。