文章目录
一、查看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 连接。
总结
以上就是今天的内容~
最后欢迎大家点赞👍,收藏⭐,转发🚀,
如有问题、建议,请您在评论区留言💬哦。