![](/img/trans.png)
[英]Can't connect Laravel through SSL to MySQL. 'PDO::__construct(): this stream does not support SSL/crypto'
[英]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 Ver 14.14 Distrib 5.7.19,适用于使用 EditLine 包装器的 linux-glibc2.12 (x86_64)
但是我在云上有一个应用服务器,所以我需要通过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.