Swift iOS Client Certificate Authentication
Der Webdienst, den ich nutzen möchte, erfordert ein Client-Zertifikat. Wie kann ich mein Zertifikat senden?
ch verstehe nicht, wie ich das @ erstellen solSecIdentityRef
.
In meinemNSURLConnection
didReceiveAuthenticationChallenge
Ich habe diese Bedingung nachServerTrust
:
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!)
}
DasgetClientCertificate
Methode
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;
}