繁体   English   中英

为什么mysql客户端可以通过私有IP连接到启用SSL的mysql5.6而不使用--ssl-ca操作,但不能通过公共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?

在我的 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)]>show variables like '%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 [私有 IP] -P 3306”。 一些敏感信息将被隐藏。

==================================================== =================================================

[mysql@GP-APS-SET02 ~]$ mysql xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 输入密码:欢迎使用 MySQL 监视器。 命令以;结尾或\g。 您的 MySQL 连接 ID 为 221 服务器版本:5.6.45-log MySQL 社区服务器(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

但是我在云上有一个应用服务器,所以我需要通过pulic IP连接到mysql。像这样的命令“Z81C3B080DAD537DE7E10E0987A42”-p会得到公共错误[IP] -Ph_test “错误 1045 (28000):用户 xxxxxx 的访问被拒绝(使用密码:是)”

如果我在云ECS上提供ca证书,类似“mysql --ssl-ca=ca.pem”这样的命令,我可以成功连接到mysql和ssl加密也成功。

那么如何通过公共 ip 连接到 mysql 而无需 ssl-sa 操作? 为什么?

更改用户 ssl_test2@'%' 不需要;
刷新特权;
select 主机,用户来自 mysql.user

然后:
检查您的 ECS 安全组 firewalld

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM