文章目录

一、查看MySQL服务器是否启用了SSL连接

1.登录MySQL服务器

2.查看SSL配置

二、查看证书是否存在


前言

查看MySQL服务器是否启用了SSL连接,并且查看ssl证书是否存在

一、查看MySQL服务器是否启用了SSL连接

1.登录MySQL服务器

在Linux终端中,可以通过以下命令登录MySQL服务器:

mysql -u username -p

其中,username为MySQL服务器的用户名。执行该命令后,会提示输入密码。

2.查看SSL配置

登录MySQL服务器后,可以使用以下命令查看SSL配置:

SHOW VARIABLES LIKE '%ssl%';

该命令将显示MySQL服务器的SSL配置信息,例如:

+---------------+---------------------------------+
| Variable_name | Value                           |
+---------------+---------------------------------+
| have_openssl  | YES                             |
| have_ssl     | YES                             |
| ssl_ca       | /etc/mysql/ssl/ca-cert.pem      |
| ssl_capath   |                                 |
| ssl_cert     | /etc/mysql/ssl/server-cert.pem  |
| ssl_cipher   |                                 |
| ssl_key      | /etc/mysql/ssl/server-key.pem   |
+---------------+---------------------------------+

其中,have_ssl的值为YES表示MySQL服务器启用了SSL连接。如果have_ssl的值为NO,则表示MySQL服务器未启用SSL连接。

如果MySQL服务器启用了SSL连接,还需要检查客户端是否配置了SSL证书。如果客户端未配置SSL证书,则无法使用SSL连接。具体的SSL连接配置可以参考MySQL官方文档。

二、查看证书是否存在

2.1、检查存在与否

你可以通过在终端中运行以下命令来检查MySQL服务器是否启用了SSL连接:

mysql -u <用户名> -p --ssl-mode=REQUIRED -e "SHOW STATUS LIKE 'Ssl_cipher'"

其中 `<用户名>` 是你的MySQL用户名。运行该命令后,系统会提示你输入MySQL密码。如果MySQL服务器已经启用SSL连接,命令行会返回一个类似于 `Ssl_cipher | AES128-SHA` 的输出。如果没有启用SSL连接,命令行会返回一个空的输出。

 2.2、不存在的解决方法

如果你运行 `SHOW STATUS LIKE 'Ssl_cipher'` 命令返回的结果为空,说明MySQL服务器没有启用SSL连接。

要启用MySQL服务器的SSL连接,你需要完成以下步骤:

1. 生成SSL证书和密钥文件。你可以使用以下命令生成SSL证书和密钥文件:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/mysql/ssl/mysql-server.key -out /etc/mysql/ssl/mysql-server.crt

   这条命令将在 `/etc/mysql/ssl/` 目录下生成一个名为 `mysql-server.crt` 的证书文件和一个名为 `mysql-server.key` 的私钥文件。

2. 修改MySQL配置文件。

你需要编辑MySQL配置文件 `/etc/mysql/mysql.conf.d/mysqld.cnf`

并添加以下几行:

   [mysqld]
   ssl=ON
   ssl-cert=/etc/mysql/ssl/mysql-server.crt
   ssl-key=/etc/mysql/ssl/mysql-server.key

   这些配置将启用MySQL服务器的SSL连接,并指定证书和密钥文件所在的路径。

此处的wq是要按esc键,再加入的!!!! 

3. 重新启动MySQL服务器。你需要重新启动MySQL服务器以使配置生效:

    sudo systemctl restart mysql

   运行以上命令后,MySQL服务器就会启用SSL连接。

4. 检查SSL连接是否启用。你可以再次运行以下命令来检查MySQL服务器是否启用了SSL连接:

     mysql -u <用户名> -p --ssl-mode=REQUIRED -e "SHOW STATUS LIKE 'Ssl_cipher'"

   如果MySQL服务器已经启用SSL连接,命令行会返回一个类似于 `Ssl_cipher | AES128-SHA` 的输出。

再次运行上述的代码

2.3、如果2.2的方法使用完成之后还是不能正常的使用ssl证书,试一下这种方法

如果你已经按照之前提供的方法安装和配置了 MySQL 的 SSL 连接,但是在连接 MySQL 时仍然没有 SSL 值,那么可能是因为你未能正确地启用 SSL。

首先,你需要检查你的 MySQL 服务器是否已经启用了 SSL。你可以使用以下命令来检查:

SHOW VARIABLES LIKE '%ssl%';

如果你看到 `have_ssl` 的值为 `YES`,那么 SSL 已经启用。如果不是,你需要启用它。

在 Ubuntu 16.04 上启用 MySQL 的 SSL 连接,你需要在 MySQL 配置文件中添加以下行:

ssl-ca=/path/to/ca-cert.pem
ssl-cert=/path/to/server-cert.pem
ssl-key=/path/to/server-key.pem

其中 `/path/to/ca-cert.pem` 指向你的 CA 证书文件,`/path/to/server-cert.pem` 指向你的服务器证书文件,`/path/to/server-key.pem` 指向你的服务器私钥文件。

启用 SSL 之后,你需要重启 MySQL 服务器以使更改生效。你可以使用以下命令重启 MySQL 服务:

sudo service mysql restart

之后,你应该能够成功连接到 MySQL 并看到 SSL 值为 `Cipher in use is...`。如果仍然没有 SSL 值,你可以尝试在连接字符串中显式地指定 SSL:

jdbc:mysql://hostname:port/dbname?verifyServerCertificate=false&useSSL=true&requireSSL=true

其中 `useSSL=true` 表示启用 SSL,`requireSSL=true` 表示连接必须使用 SSL。

在 Ubuntu 16.04 上,MySQL 的配置文件位于 `/etc/mysql/mysql.conf.d/mysqld.cnf`。你需要使用 root 权限编辑该文件以添加 SSL 配置。你可以使用以下命令打开该文件:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

然后在 `[mysqld]` 部分添加以下行:

ssl-ca=/path/to/ca-cert.pem
ssl-cert=/path/to/server-cert.pem
ssl-key=/path/to/server-key.pem

其中 `/path/to/ca-cert.pem` 指向你的 CA 证书文件,`/path/to/server-cert.pem` 指向你的服务器证书文件,`/path/to/server-key.pem` 指向你的服务器私钥文件。请确保将这些路径替换为你自己的路径。

 完成后保存并退出该文件,然后重启 MySQL 服务器以使更改生效:

sudo service mysql restart

这样,MySQL 就已经启用了 SSL 连接。

总结

以上就是今天的内容~

最后欢迎大家点赞👍,收藏⭐,转发🚀,
如有问题、建议,请您在评论区留言💬哦。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐