【问题标题】:MySQL TLS verification via OpenSSL Fails通过 OpenSSL 的 MySQL TLS 验证失败
【发布时间】:2019-05-04 02:03:13
【问题描述】:

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

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

openssl s_client -showcerts -connect host:port

【问题讨论】:

    标签: mysql ssl openssl tls1.2


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      我将@danblack 的回复标记为正确,因为他确实回答了这个问题。但是,我想提供更多信息,以防它对其他人有所帮助。

      在 TLS 开始之前发生的少量前导码

      他所指的可以在 GitHub here 上找到。

      【讨论】:

        猜你喜欢
        • 2021-07-30
        • 1970-01-01
        • 1970-01-01
        • 2013-07-16
        • 2015-10-19
        • 2012-05-26
        • 1970-01-01
        • 1970-01-01
        • 2016-07-23
        相关资源
        最近更新 更多