为啥mysql客户端不使用--ssl-ca操作可以通过私有IP连接到启用SSL的mysql5.6,但不能通过公共IP?
Posted
技术标签:
【中文标题】为啥mysql客户端不使用--ssl-ca操作可以通过私有IP连接到启用SSL的mysql5.6,但不能通过公共IP?【英文标题】:why mysql client can connect to SSL-enabled mysql5.6 through private IP without using --ssl-ca operation,but can't through Public Ip?为什么mysql客户端不使用--ssl-ca操作可以通过私有IP连接到启用SSL的mysql5.6,但不能通过公共IP? 【发布时间】:2022-01-06 05:50:52 【问题描述】:在我的 IDC DATACENTER 中,我部署了一个启用 SSL 的 mysql5.6 whih 自签名 CA 和服务器证书。我的用户有 'require ssl' 操作。
================================================ ==================================================== =
MySQL root@[(none)]>select user,host,ssl_type from mysql.user where user='ssl_test2';
|用户 |主持人 | ssl_type |
| ssl_test2 | % |任何|
MySQL root@[(none)]>显示变量,如 '%ssl%';
|变量名 |价值 |
|有_openssl |是的|
|有_ssl |是的|
| ssl_ca | /tmp/ca.pem |
| ssl_cert | /tmp/server-cert.pem |
| ssl_key | /tmp/server-key.pem |
================================================ ==================================================== =
我可以从另一台IDC机器连接到这个mysql,命令:“mysql -u ssl_test2 -p -h [private IP] -P 3306”。一些敏感信息将被隐藏。
================================================ ==================================================== =
[mysql@GP-APS-SET02 ~]$ mysql xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 输入密码: 欢迎使用 MySQL 监视器。命令以 ; 结尾或\g。 您的 MySQL 连接 ID 是 221 服务器版本:5.6.45-log MySQL Community Server (GPL)
版权所有 (c) 2000、2017,Oracle 和/或其附属公司。保留所有权利。
Oracle 是 Oracle Corporation 和/或其 附属公司。其他名称可能是其各自的商标 所有者。
键入“帮助;”或 '\h' 寻求帮助。输入 '\c' 清除当前输入语句。
MySQL risk-yun@[(none)]>\s
mysql Ver 14.14 Distrib 5.7.19,适用于使用 EditLine 包装器的 linux-glibc2.12 (x86_64)
连接 ID:221 当前数据库: 当前用户:xxxxxxxxxxxxxxxxxxxx SSL:使用的密码是 DHE-RSA-AES256-SHA
但是我在云上有一个应用服务器,所以我需要通过公共IP连接到mysql。这样的命令“mysql -u ssl_test2 -p -h [public IP] -P [PORT]” 我会收到错误“ERROR 1045 (28000): Access denied for user xxxxxx (using password: YES)”
如果我在云ECS上提供ca证书,如“mysql --ssl-ca=ca.pem”这样的命令,我可以成功连接mysql,也可以成功ssl加密。
那么我怎样才能通过公共 ip 在没有 ssl-sa 操作的情况下连接到 mysql 呢?为什么?
【问题讨论】:
请改进格式。您的问题不容易阅读/扫描。 【参考方案1】:alter user ssl_test2@'%' 不需要; 刷新权限; 从 mysql.user 中选择主机、用户
然后: 检查您的 ECS 安全组 firewalld
【讨论】:
"require none" 操作不是我想要的。以上是关于为啥mysql客户端不使用--ssl-ca操作可以通过私有IP连接到启用SSL的mysql5.6,但不能通过公共IP?的主要内容,如果未能解决你的问题,请参考以下文章