swift - 在 Alamofire 问题中上传文件的客户端证书

标签 swift ssl alamofire client-certificates

我能够使用这个答案来帮助我使用客户端证书登录我的应用程序。

Getting Client Certificate for Mutual Authentication with Alamofire

登录时一切正常。现在,我需要发出另一个上传文件的请求。我使用了上一篇文章中的相同代码来获取 p12 文件并创建我的 serverTrustPolicy 并将其添加到我的 session 管理器中,但是当我发出请求时,服务器告诉我我没有将证书传递给他们。

我不明白为什么代码适用于一个实例,而不适用于另一个实例。两者之间的唯一区别是:

作品:

manager = Alamofire.SessionManager(serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicy))

不起作用:

manager = Alamofire.SessionManager(configuration: configuration, serverTrustPolicyManager : ServerTrustPolicyManager(policies: serverTrustPolicy))

两者都使用完全相同的 didChallenge Delegate。

如有任何见解,我将不胜感激。

最佳答案

很明显,问题是由于具有配置和 ServerTrustPolicyManager。当我只有一个 STPM 并将我的 header 放在上传函数中时,调用工作正常。也许在应用程序中尝试进行两次后台调用会导致问题。默认和临时调用工作得很好。

关于swift - 在 Alamofire 问题中上传文件的客户端证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41018826/

相关文章:

ios - 如何在 ios 中的 Google map 上显示特定路线的实时交通数据

swift - 终端命令 : handle special characters in filename

xcode - 在 macOS 命令行应用程序上设置框架 - Reason : image not found

ios - AFNetworking 一次可以上传多少张图片

swift - 在 WKWebView 中加载本地 Web 文件和资源

ios - 如何偏移空 TableView 中显示的消息

android - https 简单获取请求

security - 安全代理背后的一切都安全吗?

ssl - wolfSSL_read() 返回 0

ios - alamofire 在 SessionManager 中更新 JWT header