我正在尝试设置到通过Amazon RDS托管的MySQL数据库的SSL连接。我对如何连接感到困惑。
根据亚马逊的documentation,我需要下载一个名为"rds- CA -2015-root.pem“的ca证书,并在我的SSL连接中使用它。SSL将我要连接的数据库用户设置为需要。
在PHP中,我包含了以下代码来启动连接:
$mysqli = mysqli_init();
mysqli_options($mysqli, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true);
$mysqli->ssl_set(NULL, NULL, "/path/to/pem", NULL, NULL);
$mysqli->real_connect("host", "username", "password", "name", 3306, NULL, MYSQLI_CLIENT_SSL);
但是,无论我将哪个路径指定为ssl_set()中的第三个参数(即使该路径无效),连接都会成功建立。第三个参数不能设置为NULL。
我通过运行以下查询验证这一点:SHOW STATUS LIKE 'Ssl_cipher';
。输出验证连接是否已加密(Ssl_cipher => AES256-SHA)。
有人能给我解释一下这是怎么回事吗?我搞不懂为什么在路径不正确的情况下,连接仍能成功工作。RDS服务器是如何验证的?
https://stackoverflow.com/questions/31823926
复制相似问题