mysql - 在不登录的情况下检查MySQL服务器是否启用了ssl

标签 mysql ssl

假设我们有端口和 IP,是否可以在不登录的情况下检查 MySQL 服务器是否启用了 SSL 连接?

最佳答案

理论上是可以的,但是需要了解MySQL自身的协议(protocol)和高级socket编程。

作为初始握手过程的一部分,mysql 服务器发送一个 initial handshake packet .作为能力标志的一部分,MySQL 服务器设置 CLIENT_SSL旗帜 if it supports SSL :

The SSL support is announced in Initial Handshake Packet sent by the server via CLIENT_SSL and is enabled if the client returns the same capability.

此数据包在认证之前发送,因此您无需通过认证来确定 MySQL 服务器是否支持 SSL。但是,在各种 MySQL API 中,您不能简单地要求发送初始握手数据包。即使在 C API 中,您也只有 mysql_real_connect() 可以立即将您连接到服务器。所以,你需要自己编写代码来发起与mysql服务器的连接,处理服务器的初始握手包,判断是否支持SSL并关闭连接。

关于mysql - 在不登录的情况下检查MySQL服务器是否启用了ssl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38221855/

相关文章:

php - 在 PHP 脚本中调用时无法通过 Perl 建立 MySQL 连接

MySQL - 如何删除子查询并简化 - 计算每年的销售额增长率

MySQL:使用计算计数器列作为子查询的键

java - 带有 netty 服务器 (SSLSocket) 的 Android 客户端

jquery - ERR_SPDY_PROTOCOL_ERROR Ajax .net Web API

ssl - NGINX 将 HTTPS 重定向到 HTTPS

php - ajax中常见的服务器响应页面原因?

mysql - 将现有的自动增量 ID 排序的代码可能是什么?

r - SSL 和/或 TLS 错误

Silverlight 4 - 配置自承载 WCF 服务以使用 SSL