mysql - 通过 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
解决方案
虽然 MySQL 可能使用 TLS,但它并不是总的外部层。在 TLS 开始之前会出现少量的前导码。openssl 命令行不知道这一点。
使用 mysql 客户端及其 TLS 选项来测试客户端证书。
推荐阅读
- makefile - 如何有条件地为 Makefile(BSD + GNU)中的变量赋值?
- string - 从寄存器连接字符串并打印它们(CPUID)
- java - 不支持 Java Flight Recorder 文件格式
- python - 使用“导入模块作为名称”时如何从模块中获取“名称”
- c# - ReactiveUI 命令链
- python-3.x - 无法通过python3在sqlite数据库中插入记录
- jquery - 当我向 .empty 添加更多选择器时,元素消失
- c++ - PUTTY ncurses A_BLINK 无效
- java - 使用 PageFactory 时处理 StaleElementReferenceException
- javascript - 在 javascript 函数中导出 json 以在另一个 javasctipt 函数中导入