使用Socket.io IOS客户端的客户端证书

时间:2015-12-04 16:12:59

标签: ios ssl socket.io

我正在尝试连接到需要客户端验证的服务器。我在CA生成的应用程序包中有一个.P12证书。有没有办法让socket.IO在连接到服务器时显示此证书。 (服务器是反向代理,虽然我不认为这会导致问题)

    let opts: [String : AnyObject] = ["log": true, "sessionDelegate": self, "forceWebsockets" : true]

    self.socket = SocketIOClient(socketURL: "https://myapp.something.com:49447", options: opts)

    self.socket.on("connect") {[weak self] data, ack in
        self?.handleConnect()
        return
    }
    self.socket.connect()

我有一个委托setUp来处理挑战,但是在我到达那一点之前,ssl握手失败了。

CFNetwork SSLHandshake失败(-9824 - > -9829)

func URLSession(session: NSURLSession, didReceiveChallenge challenge: NSURLAuthenticationChallenge, completionHandler: (NSURLSessionAuthChallengeDisposition, NSURLCredential?) -> Void) {
    completionHandler(.UseCredential, NSURLCredential(trust: challenge.protectionSpace.serverTrust!))
}

1 个答案:

答案 0 :(得分:0)

您需要自己将p12安装到应用的钥匙串中,请参阅here

安装后,它将可用于https连接。