当前位置: 首页 > news >正文

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

文章目录

一、查看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 连接。

总结

以上就是今天的内容~

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

http://www.lryc.cn/news/91573.html

相关文章:

  • 华为OD机试真题 Java 实现【表示数字】【牛客练习题】
  • 使用Python进行接口性能测试:从入门到高级
  • sed编辑器
  • 深入理解深度学习——正则化(Regularization):稀疏表示
  • 【Android】分别用JAVA和Kotlin实现横向扫描的动画效果
  • 长尾词挖掘,如何选择精准的长尾词优化?
  • Python相关环境变量配置和模拟手机app登录
  • c++ 11标准模板(STL) std::map(九)
  • 深入探索chatGPT插件:SceneXplain,Wolfram,和AppyPieAIAppBuilder
  • 华为OD机试真题B卷 Java 实现【停车场车辆统计】,附详细解题思路
  • 第二章:MySQL环境搭建
  • 生产环境之负载均衡LVS+keepalived方案(2)_LVS介绍
  • 【parsel】------- PYTHON爬虫基础4
  • MySQL数据库从入门到精通学习第8天(表数据的查询)
  • 什么是IPAM?如何使用IPAM来管理IP地址和DHCP?
  • PCIE学习
  • 商业智力,Social焕新|数说故事重磅发布“SocialGPT”,国内首个专注Social领域的商业大模型
  • STM32HAL库RS485-ModBus协议控制伺服电机
  • 【医学图像】图像分割系列.3 (uncertainty)
  • Java有线程安全的set吗?
  • 《HelloGitHub》第 86 期
  • LDGRB-01 3BSE013177R1 将数字输入和继电器输出结合
  • 手动计算校正年龄、性别后的标准化死亡率 (SMR)
  • Java组合模式:构建多层次公司组织架构
  • Langchain-ChatGLM:基于本地知识库问答
  • 设计模式十 适配器模式
  • 1.6 初探JdbcTemplate操作
  • 为什么要用线程池?
  • c语言的预处理和编译
  • 网络安全必学 SQL 注入