【发布时间】:2015-09-21 20:18:30
【问题描述】:
在 Alamofire 1 和 Swift 1.2 上,我使用以下代码发出请求,提交我自己的客户端证书:
Alamofire.request(.POST, url!, parameters: params, encoding: .JSON)
.authenticate(usingCredential: credential)
.responseJSON { (request, response, JSON, error) in
...
}
在 Alamofire 和 Swift 2.0 中,我采用了固定证书并使用了我自己的 Manager 实例。但是服务器报告没有提交有效的证书。
let manager = Manager(
configuration: NSURLSessionConfiguration.defaultSessionConfiguration(),
serverTrustPolicyManager: ServerTrustPolicyManager(policies:
["my.server.com": ServerTrustPolicy.PinCertificates(certificates: [
SecCertificateCreateWithData(kCFAllocatorDefault,
NSData(contentsOfFile: NSBundle.mainBundle().pathForResource("root-ca", ofType: "der")!)!)!
],
validateCertificateChain: true, validateHost: true)
])
)
我做错了什么?我无权访问服务器以查看传入请求的外观。但是,接受以下 cURL 请求:
curl -X POST -d '{"foo": "bar"}' https://my.server.com --cert client.pem --insecure
感谢您的帮助!
【问题讨论】:
标签: ios swift https swift2 alamofire