发送的Starscream SSL证书返回错误

时间:2018-11-01 12:14:37

标签: ios swift starscream

我有几次尝试通过Starscream与SSL建立连接,但是由于某些原因,我遇到了同样的错误。 这是连接和响应的简单方法

client = WebSocket(url: URL(string: "wss://XXXXXXXX:443/")!)
    client?.enabledSSLCipherSuites = [TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]
    let certificateData = try Data(contentsOf:Bundle.main.url(forResource: "certificate", withExtension: "cer")!)
    let cert = SSLCert(data: certificateData)

    let security = SSLSecurity(certs: [cert], usePublicKeys: true)
    security.validatedDN = false
    security.validateEntireChain = false
    client?.security = security
    client?.delegate = self
    client?.connect()

第二个

 do
    {
        client = WebSocket(url: URL(string: "wss://XXXXXXXX:443/")!)
        let urlPath     = Bundle.main.path(forResource: "certificate", ofType: "der")
        let url         = NSURL.fileURL(withPath: urlPath!)
        let certificateData = try Data(contentsOf: url)
        let certificate: SecCertificate =
            SecCertificateCreateWithData(kCFAllocatorDefault, certificateData as CFData)!

        var trust: SecTrust?
        let policy = SecPolicyCreateBasicX509()
        let status = SecTrustCreateWithCertificates(certificate, policy, &trust)
        if status == errSecSuccess {
            let key = SecTrustCopyPublicKey(trust!)!;
            let ssl =  SSLCert(key: key)
            let security = SSLSecurity(certs: [ssl], usePublicKeys: false)
            security.validateEntireChain = false
            client?.security = security
            client?.delegate = self
            client?.connect()
        }

    }catch let error as NSError
    {
        print(error)
    }

和日志

CFNetwork SSLHandshake失败(-9807)

0 TCP连接0x600003119c80 SSL握手失败(-9807)

错误-%@可选(“操作无法完成。(OSStatus错误-9807。)”)

0 个答案:

没有答案