由于 TIC SSL 信任错误,无法使用 Alamofire 发出请求
Posted
技术标签:
【中文标题】由于 TIC SSL 信任错误,无法使用 Alamofire 发出请求【英文标题】:Unable to make request using Alamofire due to- TIC SSL Trust Error 【发布时间】:2018-09-27 07:08:47 【问题描述】:我已设置 - 允许任意加载为 YES
我正在使用以下代码来触发请求:
let apiAddress = somehttpsAddress
let configuration = URLSessionConfiguration.default
configuration.timeoutIntervalForRequest = 30 // seconds
configuration.timeoutIntervalForResource = 30 //seconds
AFManager = Alamofire.SessionManager(configuration: configuration)
AFManager.request(apiAddress , method: .post, parameters: body, encoding: JSONEncoding.default, headers: header).responseJSON response in
// utility
但是我得到的只是这些错误:
TIC SSL Trust Error [1:0x60c000161c80]: 3:0
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
我不明白这里缺少什么以及我应该如何更正它。请帮我纠正这个问题。
【问题讨论】:
你可能想检查这个线程github.com/Alamofire/Alamofire/issues/… @Xchord,这是否意味着我不能这样做? Alamofire 还不支持它。您可以使用此处讨论的 URLSession forums.developer.apple.com/thread/92231or 在服务器端正确配置身份验证。 【参考方案1】:如果您连接到一些公共网络或校园网络,他们可能已经安装了一些限制软件,例如 Cyberoam。您提出请求的地址可能受到限制。您可以请求访问该特定网站的权限。
【讨论】:
其实是一个不安全的链接。未屏蔽。【参考方案2】:这里的问题是 Alamofire 认为它不是有效的 ssl 证书。尝试将其用作您的经理:
private static var Manager : Alamofire.SessionManager =
// Create the server trust policies
let serverTrustPolicies: [String: ServerTrustPolicy] = [
"your domain goes here": .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
()
【讨论】:
没有错误,事实上它现在连链接都没有。状态码是纯 nil 奇怪,试试这个***.com/a/40784254/5135104 请按照描述更改 plist 和代码 为我工作!即使没有.pList
条目。以上是关于由于 TIC SSL 信任错误,无法使用 Alamofire 发出请求的主要内容,如果未能解决你的问题,请参考以下文章
错误:C# 底层连接已关闭:无法为 SSL/TLS 安全通道建立信任关系
WCF:无法为 SSL/TLS 安全通道建立信任关系,出现权限错误
使用本地信任库时,Android HttpsUrlConnection javax.net.ssl.SSLException 连接因对等握手错误而关闭
curl: (60) SSL certificate problem: unable to get local issuer certificate 错误
curl: (60) SSL certificate problem: unable to get local issuer certificate 错误