自己署名証明書付きのHTTP RESTサーバーがあります。私はalamofireを使って、iOS Swiftアプリからこのサーバと話したいと思います。私が持っている現在のコードは次のとおりです。私はHTTP呼び出しAlmgr.request
を作るしようとすると、上記のコードでは自己署名ローカル証明書のalamofire SSLエラー
`` `
let Almgr : Alamofire.SessionManager = {
// Create the server trust policies
let serverTrustPolicies: [String: ServerTrustPolicy] = [
"localhost": .disableEvaluation
]
// Create custom manager
let configuration = URLSessionConfiguration.default
configuration.httpAdditionalHeaders = Alamofire.SessionManager.defaultHTTPHeaders
let man = Alamofire.SessionManager(
configuration: URLSessionConfiguration.default,
serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)
)
return man
}()
Almgr.request(url, method: .post, parameters: params).responseJSON {
response in
if response.result.isSuccess {
print("Success")
} else {
print("Failure")
}
}
、私は常にエラーを取得しています。エラーメッセージは次のとおりです。
2017-12-30 18:24:20.114486+0530 myApp[58036:2721102] ATS failed system trust
2017-12-30 18:24:20.114625+0530 myApp[58036:2721102] System Trust failed for [1:0x600000178a80]
2017-12-30 18:24:20.114814+0530 myApp[58036:2721102] TIC SSL Trust Error [1:0x600000178a80]: 3:0
2017-12-30 18:24:20.115142+0530 myApp[58036:2721102] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)
2017-12-30 18:24:20.115274+0530 myApp[58036:2721102] Task <4E3D9E88-B9CE-48C4-850C-5A3E7C9A6A72>.<1> HTTP load failed (error code: -1200 [3:-9802])
2017-12-30 18:24:20.115469+0530 myApp[58036:2721231] Task <4E3D9E88-B9CE-48C4-850C-5A3E7C9A6A72>.<1> finished with error - code: -1200
これを解決する方法はありますか?私は、もしURLがポート8000のlocalhost
であれば、何のチェックもしたくありません。私はserverTrustPolicies
の定義にポートを追加しようとしましたが、それは何の違いもなく、まだエラーが出ます。どんな助け?
更新:私の問題はhttps://developer.apple.com/library/content/qa/qa1948/_index.htmlと関連していますが、まだ修正する方法が見つかっていません。
'ServerTrustPolicyManager'のカスタムクラスを作成しようとしていますか? –
あなたは精緻化できますか?私はあなたが何を意味するのか理解できません。 –