#85 已让固定公网 IP 可以通过 TLS 直连 MySQL,但 Admin 的 Go MySQL 驱动没有启用 TLS。公网账号设置了 REQUIRE SSL,因此 run_admin.bat 返回 1045 Access denied;相同密码使用 MySQL 客户端 --ssl-mode=REQUIRED 可以成功,确认密码和权限无误。
REQUIRE SSL
run_admin.bat
1045 Access denied
--ssl-mode=REQUIRED
preferred
DatabaseConfig
tls_mode
tls_ca
disabled
verify_ca
repository.OpenMySQL
mysql.NewConnector
tls.Config
config.yaml
buy@61.141.178.177
$env:GOTOOLCHAIN="go1.23.0" go vet ./... go build ./... go test ./... -count=1 Remove-Item Env:GOTOOLCHAIN .\run_admin.bat
页面启动后在 MySQL 端核对公网会话 Ssl_cipher 非空。
Ssl_cipher
127.0.0.1:13307
tls_mode: disabled
database.tls_mode=verify_ca
185.216.248.75:3307
ECDHE-RSA-AES128-GCM-SHA256
go vet ./...
go build ./...
go test ./... -count=1
f0715ee
663c5ee
docs/task/86-mysql公网tls-ca校验.md
未验证:执行策略禁止自动后台启动/终止长期 run_admin.bat 进程,需用户重新启动脚本确认窗口保持运行。密码未进入工单、提交或测试输出。
用户已明确验收通过。验收清单已回填,本工单关闭。
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
#85 已让固定公网 IP 可以通过 TLS 直连 MySQL,但 Admin 的 Go MySQL 驱动没有启用 TLS。公网账号设置了
REQUIRE SSL,因此run_admin.bat返回1045 Access denied;相同密码使用 MySQL 客户端--ssl-mode=REQUIRED可以成功,确认密码和权限无误。做什么 / 不做什么
REQUIRE SSL;不使用preferred明文回退;不跳过 CA 链验证;不开放额外公网 IP;不修改数据库结构和 Client API。怎么做
DatabaseConfig增加tls_mode、tls_ca,并支持对应环境变量覆盖。disabled保持线上同机连接兼容;verify_ca加载 PEM CA,要求 TLS 1.2+,使用 Go 自定义���验回调验证服务器证书链。服务器自动证书没有 SAN,因此不做域名校验,但只信任该服务器私有 CA,不能退回明文。repository.OpenMySQL改用mysql.NewConnector,保留自定义tls.Config。config.yaml启用verify_ca。验收标准
run_admin.bat能以buy@61.141.178.177连接 MySQL 并启动页面。disabled保持服务器本机环境变量部署兼容。verify_ca与 CA 文件路径。怎么验证
页面启动后在 MySQL 端核对公网会话
Ssl_cipher非空。风险和回退
127.0.0.1:13307和tls_mode: disabled;服务端 #85 白名单可独立保留或按其回退步骤关闭。实施完成,待验收
database.tls_mode=verify_ca、CA 路径和对应环境变量;TLS 1.2+;服务器专属 CA 链校验;禁止明文回退;驱动改用mysql.NewConnector。config.yaml已切换公网185.216.248.75:3307和verify_ca,密码仍被 Git 忽略。ECDHE-RSA-AES128-GCM-SHA256。go vet ./...、go build ./...、go test ./... -count=1全部通过。f0715ee;归档提交:663c5ee。docs/task/86-mysql公网tls-ca校验.md。未验证:执行策略禁止自动后台启动/终止长期
run_admin.bat进程,需用户重新启动脚本确认窗口保持运行。密码未进入工单、提交或测试输出。用户已明确验收通过。验收清单已回填,本工单关闭。