首页 > 解决方案 > alamofire 中的证书固定是 wrog

问题描述

我想在Alamofire. 这是我的代码:


            // Set up certificates
            let pathToCert = Bundle.main.path(forResource: cert, ofType: "der")
            let localCertificate = NSData(contentsOfFile: pathToCert!)
            let certificates = [SecCertificateCreateWithData(nil, localCertificate!)!]

            // Configure the trust policy manager
            let serverTrustPolicy = ServerTrustPolicy.pinCertificates(
                certificates: ServerTrustPolicy.certificates(),
                validateCertificateChain: false,
                validateHost: true)

            let serverTrustPolicies = ["hostname": serverTrustPolicy]
            let serverTrustPolicyManager = ServerTrustPolicyManager(policies: serverTrustPolicies)

            let sessionManager = SessionManager(configuration: URLSessionConfiguration.default,serverTrustPolicyManager: serverTrustPolicyManager)


            sessionManager
                .request()...

这是我的 info.plist ->

信息列表

我得到这个错误: load failed with error Error Domain=NSURLErrorDomain Code=-999 "cancelled"

我搜索了很多,但找不到任何可以解决我的问题的东西。我.crt使用. .der_open ssl

标签: swiftalamofirecertificate-pinning

解决方案


除了SessionManager在请求完成之前 deinit'd 时看到这个错误,就像这里的问题一样,它也是你在 Alamofire 4 中证书固定失败时会看到的。更新到 Alamofire 5 会给你一个更好的错误两种情况。


推荐阅读