在 Alamofire 问题中上传文件的客户端证书
Posted
技术标签:
【中文标题】在 Alamofire 问题中上传文件的客户端证书【英文标题】:Client certificate with file upload in Alamofire issue 【发布时间】:2016-12-07 13:31:53 【问题描述】:我能够使用此答案帮助我使用客户端证书登录我的应用程序。
Getting Client Certificate for Mutual Authentication with Alamofire
一切都非常适合登录。现在,我需要发出另一个上传文件的请求。我使用与上一篇文章相同的代码来获取 p12 文件并创建我的 serverTrustPolicy 并将其添加到我的会话管理器中,但是当我提出请求时,服务器告诉我我没有将证书传递给他们。
我不明白为什么该代码适用于一个实例,而不适用于另一个实例。两者的唯一区别是:
作品:
manager = Alamofire.SessionManager(serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicy))
不起作用:
manager = Alamofire.SessionManager(configuration: configuration, serverTrustPolicyManager : ServerTrustPolicyManager(policies: serverTrustPolicy))
两者都使用完全相同的 didChallenge 委托。
如果有任何见解,我将不胜感激。
【问题讨论】:
【参考方案1】:所以显然问题是由于有一个配置和一个 ServerTrustPolicyManager。当我只有一个 STPM 并将我的标题放在上传函数中时,调用就可以正常工作。也许尝试在应用程序中进行两次后台调用会导致问题。默认调用和临时调用都可以正常工作。
【讨论】:
以上是关于在 Alamofire 问题中上传文件的客户端证书的主要内容,如果未能解决你的问题,请参考以下文章
使用 Swift 4 和 Alamofire 获取客户端证书以用于 Https 调用身份验证