Alamofire 证书固定不起作用

Alamofire certificate pinning not working

我正在尝试使用 Alamofire 实现证书固定。

我已将 mydomain 添加到 .plist 文件中的“异常域”并设置密钥:

NSExceptionAllowsInsecureHTTPLoads: true
NSIncludesSubdomains: true
NSExceptionRequiresForwardSecrecy: false

然后,我这样创建 SessionManager:

    let serverTrustPolicies: [String: ServerTrustPolicy] = [
        "mydomain": .pinCertificates(certificates: [],
                                     validateCertificateChain: true,
                                     validateHost: true)
    ]

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

当我 运行 我的应用程序时,所有请求都会成功,但预期结果是 Alamofire 拒绝了它们。我已经为所有“didReceiveChallenge”方法设置了断点,但它们甚至都没有执行。

当我将配置更改为

let configuration = URLSessionConfiguration.background(withIdentifier: "background")

然后证书固定按预期工作(拒绝所有请求)

有人知道为什么会发生这种情况以及如何使用默认配置修复它吗?

注意:当我将 .der 文件传递​​给 .pinCertificates 策略中的证书时,后台配置也按预期工作

我终于找到了一个理由 - Wormholy。我必须删除这个库才能使证书固定工作