我正在使用xcode 8.1和Alamofire 4.0.1
我正在尝试向服务器发送请求。服务器具有自签名SSL证书。以下代码就是我现在所拥有的:
let manager: Alamofire.SessionManager = {
let serverTrustPolicies: [String: ServerTrustPolicy] = [
"someendpoint:1081": .disableEvaluation
]
let configuration = URLSessionConfiguration.default
configuration.httpAdditionalHeaders = Alamofire.SessionManager.defaultHTTPHeaders
return Alamofire.SessionManager(
configuration: configuration,
serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)
)
}()
manager.request(endpoint, method: .post, parameters: parameters, encoding: JSONEncoding.default).responseJSON
首先,我遇到错误消息:
发生SSL错误,无法与服务器建立安全连接。
然后我通过在plist文件中添加以下内容来覆盖ATS策略以允许任意加载(我知道它很危险,我将它用作临时解决方案)
<key>NSAppTransportSecurity</key>
<dict>
<!--Include to allow all connections (DANGER)-->
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
我添加plist条目后,它现在提示我错误:
此服务器的证书无效。您可能连接到假装是“somenedpoint”的服务器,这可能会使您的机密信息面临风险。
请注意:我不拥有服务器,因此必须在客户端完成所有操作。
我试图调试这个问题2天但没有运气。有人可以帮忙指出我们的问题吗?