1.Docker compose文件
MySQL的Docker compose文件具体如下所示:
version: "3.9"
services:
mysql:
image: mysql:8.4.0
volumes:
- ./data:/var/lib/mysql
- ./certs:/etc/mysql/certs
environment:
- MYSQL_ROOT_PASSWORD=@*******1*******@
- MYSQL_DATABASE=test
- MYSQL_USER=test
- MYSQL_PASSWORD=@*******1*******@
- caching_sha2_password_auto_generate_rsa_keys=ON
command:
- --require_secure_transport=ON
- --bind-address=0.0.0.0
ports:
- 3306:3306
相对于MySQL常规配置,当前文件中启用了caching_sha2_password_auto_generate_rsa_keys
环境变量,并设置其状态为ON。
--require_secure_transport:启动参数中设置此参数,已确保MySQL只允许加密连接。
2.caching_sha2_password_auto_generate_rsa_keys
变量释义
根据8.3.3.1 Creating SSL and RSA Certificates and Keys using MySQL一文,在如下情况:
启用
caching_sha2_password_auto_generate_rsa_keys
环境变量;MySQL未设置任何加密参数;
MySQL在启动时会生成SSL以及RSA文件,并自动加载此文件,启用加密连接配置,详见下图:
因此当前Docker compose文件中设置caching_sha2_password_auto_generate_rsa_keys
环境变量为开启状态。
3.获取客户端连接配置文件
MySQL启用加密连接后,客户端连接的时候,需要配置以下文件:
CA证书;
客户证书;
客户密钥。
以上文件MySQL均会生成在其数据文件夹下,详见下图:
从挂载目录下拷贝此文件,客户端即可启用与MySQL的加密连接。