我是swift和Certificate Pinning的新手。
我创建了.der
这样的openssl s_client -showcerts -connect www.github.com:443 < /dev/null | openssl x509 -outform DER > githubcom.der
认证
并导入我的项目。
然后创建SessionManager。
let serverTrustPolicies: [String: ServerTrustPolicy] = [
"github.com": .pinCertificates(
certificates: ServerTrustPolicy.certificates(),
validateCertificateChain: true,
validateHost: true
)
]
let sessionManager = SessionManager(serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies))
sessionManager.request("https://github.com").response { response in // method defaults to `.get`
debugPrint(response)
}
调试输出:
Alamofire.DefaultDataResponse(请求:可选(https://github.com), 响应:nil,data:可选(0字节),错误:可选(错误 Domain = NSURLErrorDomain Code = -999&#34;已取消&#34; 的UserInfo = {NSErrorFailingURLKey = https://github.com/, NSLocalizedDescription =取消, NSErrorFailingURLStringKey = https://github.com/}),时间轴:时间轴: {&#34;请求开始时间&#34;:524040427.202,&#34;初始响应时间&#34;: 524040427.234,&#34;请求完成时间&#34;:524040427.234,&#34;序列化完成时间&#34;:524040427.235,&#34;延迟&#34;:0.032秒,&#34;请求 持续时间&#34;:0.032秒,&#34;序列化持续时间&#34;:0.001秒,&#34;总计 持续时间&#34;:0.033秒},_ metrics:nil)
我做错了什么?