【等保测评】数据库数据库配置have_ssl参数为yes

问题描述:

数据库数据库配置have_ssl参数为disabled,未对远程访问提供ssl连接,无法保证重要数据在传输过程中的完整性。

问题分析:

数据库数据库配置have_ssl参数为disabled,未对远程访问提供ssl连接,无法保证重要数据在传输过程中的完整性。

危害分析:

数据库可能导致重要数据在传输过程中被攻击者劫持、篡改,使传输数据的完整性遭到破坏。

相当我们数据库访问需要用ssl进行访问

数据库:mysql5.7

操作系统:winserver2012

操作步骤:

  1. 确保 MySQL 5.7 已安装(建议使用官方 MSI 安装包,默认可能包含 SSL 支持)。

  2. 验证 MySQL 是否支持 SSL:登录 MySQL 后执行以下命令,若 have_ssl 为 DISABLED 或 NO,则需要配置;若为 YES 则已启用。

    SHOW VARIABLES LIKE 'have_ssl';

配置步骤

1. 生成 SSL 证书和密钥

MySQL 提供 mysql_ssl_rsa_setup 工具(位于 MySQL 安装目录的 bin 文件夹下,如 C:\Program Files\MySQL\MySQL Server 5.7\bin),用于生成所需证书。

  • 以管理员身份打开命令提示符 ,进入 MySQL 的 bin 目录:

    复制代码
    "C:\Program Files\MySQL\MySQL Server 5.7\bin"

生成证书 (指定存储目录,建议使用 MySQL 数据目录,如 C:\ProgramData\MySQL\MySQL Server 5.7\data):

复制代码
mysql_ssl_rsa_setup --datadir="C:\ProgramData\MySQL\MySQL Server 5.7\data"

执行成功后,数据目录会生成以下文件:

  • ca.pem(根证书)
  • server-cert.pem(服务器证书)
  • server-key.pem(服务器私钥)
  • client-cert.pem(客户端证书)
  • client-key.pem(客户端私钥)
  • 2. 配置 MySQL 服务器启用 SSL 编辑 MySQL 配置文件 my.ini(通常位于 C:\ProgramData\MySQL\MySQL Server 5.7 或安装目录的 my.ini),在 [mysqld] 段落添加以下配置:
复制代码
  [mysqld]
  # 启用 SSL
  ssl=ON
  # 指定证书路径(使用实际生成证书的目录)
  ssl-ca="C:/ProgramData/MySQL/MySQL Server 5.7/data/ca.pem"
  ssl-cert="C:/ProgramData/MySQL/MySQL Server 5.7/data/server-cert.pem"
  ssl-key="C:/ProgramData/MySQL/MySQL Server 5.7/data/server-key.pem"
3. 重启 MySQL 服务
  • 打开 服务 管理器(services.msc),找到 MySQL57 服务,右键 重启。
  • 验证配置是否生效:登录 MySQL 后执行:
复制代码
  SHOW VARIABLES LIKE 'have_ssl';  -- 应返回 YES
  SHOW VARIABLES LIKE 'ssl%';      -- 确认证书路径正确
4. 配置客户端强制使用 SSL 连接

(可选但推荐)为确保客户端通过 SSL 连接,可对数据库用户设置强制 SSL 权限:
*

复制代码
  -- 为现有用户开启强制 SSL(替换 username 和 host)
  ALTER USER 'username'@'host' REQUIRE SSL;

  -- 创建新用户时强制 SSL
  CREATE USER 'new_user'@'host' IDENTIFIED BY 'password' REQUIRE SSL;
  GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'host';
  FLUSH PRIVILEGES;

按以上步骤完成。如果在生成证书步骤会出现Could not find OpenSSL on the system

  • 需要安装openssl1.1.1安装后再重新生成证书。现在1.1.1版本有点难找
相关推荐
captain37620 分钟前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
心中有你021442 分钟前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
龙亘川1 小时前
综合素质评价业务建模:从过程性评价到成长档案全链路闭环
数据库·智慧城市·数据可视化
数据库小组1 小时前
NineData 实战教程:MySQL 5.5 数据迁移同步到 MySQL 8.0(跨版本升级)
数据库·mysql·mysql优化·数据库开发·数据库迁移·版本升级·数据复制
发光小北1 小时前
EtherNet/IP 转 ModbusTCP 网关现场应用中会遇到什么问题?
服务器·网络·tcp/ip
zhangjw342 小时前
1-5 PostgreSQL 数据类型全集:基础类型、字符串、数值、时间类型
数据库·postgresql
王中阳Go2 小时前
5.27 分钟干完后端和全部测试:一场三小时笔试的五个失分点,四个不在代码上
大数据·数据库·人工智能·后端·大语言模型
程序猿老A2 小时前
轻量云服务器总是卡,内存占比高?
运维·服务器
cnskylee2 小时前
【MySQL】麒麟V10 SP3系统安装MySQL-Commercial-8.0.46
数据库·mysql·adb
梦幻通灵2 小时前
修改MySQL数据库递增序列【持续更新】
数据库·mysql