使用 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 请求