使用 Swift 4 和 Alamofire 获取客户端证书以用于 Https 调用身份验证

Posted

技术标签:

【中文标题】使用 Swift 4 和 Alamofire 获取客户端证书以用于 Https 调用身份验证【英文标题】:Getting client certificate to work for Https call authentication using Swift 4 and Alamofire 【发布时间】:2018-01-05 10:20:56 【问题描述】:

免责声明:从新手到 swift

我正在尝试弄清楚如何使用 Alamofire 和 Swift 4 来发送 p12 证书,以便对域进行 https 调用。

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

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

非常感谢您对此的任何帮助。即使是基本示例也会有所帮助。

【问题讨论】:

这对你有帮助吗:***.com/questions/39985856/… @pdodsk 我试图解决上述堆栈问题中的示例。但还是没有成功 【参考方案1】:

试试这个:

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)
        )
    ()

【讨论】:

这看起来像服务器端信任,而不是客户端

以上是关于使用 Swift 4 和 Alamofire 获取客户端证书以用于 Https 调用身份验证的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Alamofire,Swift 4 为 UICollectionView 获取 JSON 数据

Swift 3 / Alamofire 4:在 TableView 上使用 ID 获取数据

swift 4 使用 Alamofire 解析没有键的 JSON

带参数的 Alamofire 4 Swift 3 GET 请求

如何使用 Alamofire Swift 4 将图像填充到 UICollectionView

Swift:链接多个网络请求,Alamofire