gpt4 book ai didi

swift - 如何固定 certificate.pem 和 private_key.pem 文件以在 Swift 中签署 http 请求

转载 作者:太空宇宙 更新时间:2023-11-03 14:34:00 27 4
gpt4 key购买 nike

我有这两个文件(certificate.pemprivate_key.pem),它们由我使用的 API 提供。我需要使用这些文件在 Swift 项目中签署我的 http 请求。

我可以用 Postman 做到这一点。我在 Postman 的添加客户端证书选项卡中添加了 certificate.pem 作为 CRT 文件和 private_key.pem 作为 KEY 文件。当我在 Postman 上发送带有 header 和参数的 PUT 请求时,我从 Web 服务器收到了成功消息。

但是当我使用 Swift3 和 Alamofire 在 Xcode 中尝试所有这些操作时,我总是收到错误消息。你能帮我如何将这个 PEM 文件固定到 http 请求吗?

最佳答案

Alamofire 不直接支持 PEM 文件。您需要先将它们转换为 DER 文件,这在 here 中有说明。 .然后,您需要将新的 DER 文件添加到您的应用程序目标中。最后,您按照 Security 中的说明进行操作README 部分以启用服务器信任策略。

let serverTrustPolicies: [String: ServerTrustPolicy] = [
"test.example.com": .pinCertificates(
certificates: ServerTrustPolicy.certificates(),
validateCertificateChain: true,
validateHost: true
),
"insecure.expired-apis.com": .disableEvaluation
]

let sessionManager = SessionManager(
serverTrustPolicyManager: ServerTrustPolicyManager(
policies: serverTrustPolicies
)
)

可以找到 ServerTrustPolicy.certificates() 调用 here它从 bundle 的 CERDER 文件中加载所有数据,并将它们用于固定。

希望这对您有所帮助。 🍻

关于swift - 如何固定 certificate.pem 和 private_key.pem 文件以在 Swift 中签署 http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49872849/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com