如何在 Alamofire 中实现自签名证书?
Posted
技术标签:
【中文标题】如何在 Alamofire 中实现自签名证书?【英文标题】:How to implement self signed certificates in Alamofire? 【发布时间】:2015-03-05 00:56:19 【问题描述】:我编写了一个基于 swift 的应用程序,带有自签名证书服务器通信。 作为一个网络库,我想使用 Alamofire。 但是 Alamofire 不支持自签名证书。
是否可以轻松实现此功能以及如何实现?
【问题讨论】:
【参考方案1】:Alamofire 现在可以这样配置了:
let TollerantAlamofire= ()->Alamofire.Manager in
let policies:[String:ServerTrustPolicy]=[
"www.mydemoserver.it": .DisableEvaluation
]
let manager=Alamofire.Manager(serverTrustPolicyManager:ServerTrustPolicyManager(policies:policies))
return manager
()
稍后,当您需要发出请求时,只需使用您配置的实例,如下所示:
var req:Request?
req=TollerantAlamofire
.request(method, url, parameters: params)
【讨论】:
【参考方案2】:Alamofire 尚不支持此功能。它很可能最终由社区添加,但该工作尚未提交给项目。如果您想贡献此功能,请务必分叉存储库并提交拉取请求。
如果您想了解如何自己实现此功能,我建议您阅读 ios 上的 SSL pinning 和 TLS verification。您也可以浏览AFNetworking 中的源代码,以了解它是如何实现的。
如果你没有时间自己构建这个功能,那么我建议你暂时在你的 Swift 应用中使用 AFNetworking。 AFNetworking 与 Swift 完美兼容,并且支持 TLS 验证。
【讨论】:
以上是关于如何在 Alamofire 中实现自签名证书?的主要内容,如果未能解决你的问题,请参考以下文章