使用Swift 4和Alamofire获取客户端证书以进行Https呼叫认证

时间:2018-01-05 10:20:56

标签: ios swift ssl alamofire

免责声明:快到新手

我正在试图弄清楚如何使用Alamofire和Swift 4向域名发送https呼叫的p12证书。

我见过的所有例子都是针对Swift 2.0而不是我正在寻找的。我有一个工作API,我可以通过邮递员使用(我将证书添加到邮递员设置)。

目标: 我提供了.p12证书及其密码来验证来自域的所有API调用(例如:“api.abc.com”) 所以,我正在寻找一种机制,使用提供的证书连接到api.abc.com。

对此的任何帮助都非常感谢。即使是一个基本的例子也会有所帮助。

1 个答案:

答案 0 :(得分:0)

试试这个:

class NetworkServices {

    static let sharedNetworkManager = NetworkServices()

    private static var manager: Alamofire.SessionManager = {

        let serverTrustPolicies: [String: ServerTrustPolicy] = [
            "https://your.domain.com": .pinCertificates(
                certificates: ServerTrustPolicy.certificates(),
                validateCertificateChain: true,
                validateHost: true),
            "your.domain.com": .disableEvaluation
        ]

        let configuration = URLSessionConfiguration.default

        return Alamofire.SessionManager(
            configuration: configuration,
            serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)
        )
    }()
}