Аутентификация клиентского сертификата Swift iOS
Веб-сервис, который я хочу использовать, требует сертификата клиента. Как я могу отправить свой сертификат на это?
Для дальнейшей разработки я не понимаю, как создатьSecIdentityRef
.
В моемNSURLConnection
didReceiveAuthenticationChallenge
Я получил это условно послеServerTrust
:
else if challenge?.protectionSpace.authenticationMethod == NSURLAuthenticationMethodClientCertificate
{
var secIdent : SecIdentityRef = ?????????
var certCred = NSURLCredential(identity: secIdent, certificates: [getClientCertificate()], persistence: NSURLCredentialPersistence.Permanent)
challenge?.sender.useCredential(certCred, forAuthenticationChallenge: challenge!)
}
getClientCertificate
метод:
func getClientCertificate() -> SecCertificateRef
{
let mainBundle : NSBundle = NSBundle.mainBundle()
var mainBund = mainBundle.pathForResource("iosClientCert", ofType: "cer") //exported the cert in der format.
var key : NSData = NSData(contentsOfFile: mainBund!)!
var turnToCert : SecCertificateRef = SecCertificateCreateWithData(kCFAllocatorDefault, key).takeRetainedValue()
return turnToCert;
}