Alamofire 中的证书固定不起作用
Posted
技术标签:
【中文标题】Alamofire 中的证书固定不起作用【英文标题】:Certificate pinning in Alamofire not working 【发布时间】:2016-04-13 20:46:53 【问题描述】:我在我的项目中添加了一个 .der 证书,该证书被 ServerTrustPolicy.certificatesInBundle()
识别。我现在正在创建一个 Manager,然后用于进行 API 调用:
private class func manager() -> Alamofire.Manager
let certificates = ServerTrustPolicy.PinCertificates(
certificates: ServerTrustPolicy.certificatesInBundle(),
validateCertificateChain: true,
validateHost: true
)
let serverTrustPolicies: [String: ServerTrustPolicy] = [
"api.oursite.com": certificates
]
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
let manager = Alamofire.Manager(
configuration: configuration,
serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)
)
return manager
在此之前,它只是使用Alamofire.request(...
,并且这些请求工作得非常好,但现在每次调用都会给我一个错误:
Error Domain=NSURLErrorDomain Code=-999 "cancelled"
我是否错误地设置了管理器?也许我的证书创建不正确,导致它不起作用?
【问题讨论】:
【参考方案1】:请确保您的manager
在请求后没有在短时间内释放。例如,将其作为自定义 Manager 类中的存储属性。
【讨论】:
以上是关于Alamofire 中的证书固定不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Alamofire“安装”不起作用(嵌入式二进制文件中的红色文本)