如何在Alamofire中实施自签名证书?

时间:2015-03-05 00:56:19

标签: ios swift alamofire

我使用自签名证书服务器通信编写了一个基于swift的应用程序。 作为一个网络库,我想使用Alamofire。 但是Alamofire不支持自签名证书。

是否可以轻松实现此功能以及如何实现?

2 个答案:

答案 0 :(得分:4)

Alamofire尚不支持此功能。它最有可能最终由社区添加,但该工作尚未提交给项目。如果您想提供此功能,请务必分叉回购并提交拉取请求。

如果您想自己了解如何实施此功能,建议您在iOS上阅读SSL pinningTLS verification。您还可以浏览AFNetworking中的源代码,以了解它是如何实现的。

如果您没有时间自己构建此功能,那么我建议您暂时在Swift应用中使用AFNetworking。 AFNetworking与Swift完全兼容,并支持TLS验证。

答案 1 :(得分:4)

现在可以通过这种方式配置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)