mysql支持ssl连接
第一步: 配置修改mysql配置
1.1 mysql默认是不开启ssl,所以需要打开ssl配置
编辑my.cnf
mysql
vim /etc/my.cnf
mysql
#在第8行添加一下配置
# SSL配置 - 添加在这里
ssl=ON
ssl-ca=/var/lib/mysql/ca.pem
ssl-cert=/var/lib/mysql/server-cert.pem
ssl-key=/var/lib/mysql/server-key.pem
# 强制所有远程连接使用SSL
#require_secure_transport=ON
#注释掉跳过ssl的配置(否则以上打开ssl配置不生效)
#skip_ssl
参数说明:
require_secure_transport=ON:强制所有连接使用 SSL,包括本地连接。如果只要求远程连接使用 SSL,可以设置为OFF, (默认为OFF)
1.2 保存my.cnf 并重启mysql数据库
mysql
#重启mysql命令
systemctl restart mysqld
#停止mysql命令
systemctl stop mysqld
#查看mysql运行状态
systemctl status mysqld
1.3 验证 MySQL SSL 配置是否生效
bash
# 连接到 MySQL
mysql -u root -p
# 检查 SSL 相关变量
SHOW VARIABLES LIKE '%ssl%';
预期结果:
plaintext
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| have_ssl | YES |
+--------------------------+----------------------------+
第二步修改应用配置连接
2.1 修改应用数据库连接配置
以 604 版本为例,需要修改以下应用的配置文件:
-
sso
-
portal
-
audit
将原来参数:
plaintext
useSSL=false
修改为:
plaintext
useSSL=true&requireSSL=true&verifyServerCertificate=false
2.3 完整配置示例
例如: /opt/paraview/esc/etc/props/esc-idm-demo.properties
mysql
# 根据项目替换数据库 IP
# iso, portal, audit,配置打开 SSL 参考
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/escdb?useUnicode=true&allowPublicKeyRetrieval=true&useSSL=true&requireSSL=true&verifyServerCertificate=false&characterEncoding=UTF-8&autoReconnect=true&relaxAutoCommit=true&serverTimezone=GMT%2B8&treatTinyAsBoolean=false&rewriteBatchedStatements=true
2.4 参数说明
| 参数 | 值 | 说明 |
|---|---|---|
useSSL |
true |
启用 SSL 连接(必须) |
requireSSL |
true |
强制要求 SSL,如果服务器不支持 SSL 则连接失败(推荐) |
verifyServerCertificate |
false |
不验证服务器证书(适用于自签名证书) |
2.5 重启应用
修改配置后,重启各个应用服务,使配置生效。
第三步:验证配置
3.1 验证应用连接
1.检查应用启动日志
-
✅ 正常:无 SSL 相关错误,应用正常启动
-
❌ 错误:出现
Connections using insecure transport are prohibited等错误
2.测试数据库操作
- 在应用中执行简单的数据库查询,确认连接正常