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。我必须删除这个库才能使证书固定工作
我正在尝试使用 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。我必须删除这个库才能使证书固定工作