与BlueSocket进行初始握手后,如何切换到TLS?

时间:2019-06-24 17:44:40

标签: mysql swift sockets ssl tcp

我正在尝试使用BlueSocket在Swift中实现MySQL客户端/服务器协议。

据我了解,MySQL要求初始连接必须通过纯TCP,然后可以将连接切换为使用TLS。但是,BlueSSLService(通过BlueSocket启用了SSL / TLS)要求在调用Socket.connect之前将套接字配置为使用TLS。

要创建一个未加密的套接字,我正在使用:

import Socket

let socket = try! Socket.create()
try! socket.connect(to: "127.0.0.1", port: 3306)

有了这个,我就能执行初始的MySQL握手。但是,如果我尝试使用TLS,就像这样:

import Socket
import SSLService

let sslConfig = SSLService.Configuration()
let socket = try! Socket.create()
socket.delegate = try! SSLService(usingConfiguration: sslConfig)
try! socket.connect(to: "127.0.0.1", port: 3306) // ERROR: SSLHandshake

我得到一个错误。

是否可以通过TLS最初连接到MySQL服务器?如果没有(显示),如何在初始握手(和SSLRequest数据包)之后切换使用TLS?

0 个答案:

没有答案