首页 > 解决方案 > 通过 OpenSSL 的 MySQL TLS 验证失败

问题描述

我将我的 MySQL 实例配置为使用 TLS。我通过故意使用不受信任的证书并观察客户端无法连接(带有适当的错误消息)然后使用配置的受信任证书重新启动 MySQL 服务并让客户端成功连接来验证了这一点。

我想使用 openssl 的 s_client 进行最终检查,但我无法让它工作。当我执行下面的命令时,我收到一条错误消息,提示“SSL23_GET_SERVER_Hello:unknown protocol”,然后是“没有可用的对等证书”,然后是更多文本。但是,当我对启用 TLS 的 Tomcat 实例和远程桌面端口使用相同的命令时,我能够建立连接并查看服务器的证书。我究竟做错了什么?MySQL 是否在 TLS 握手开始之前进行一些额外的预协商?

openssl s_client -showcerts -connect host:port

标签: mysqlsslopenssltls1.2

解决方案


虽然 MySQL 可能使用 TLS,但它并不是总的外部层。在 TLS 开始之前会出现少量的前导码。openssl 命令行不知道这一点。

使用 mysql 客户端及其 TLS 选项来测试客户端证书。


推荐阅读