我正在尝试建立一个通过Amazon RDS托管的MySQL数据库的SSL连接,但是我对如何连接感到困惑。
根据Amazon的文档,我需要下载名为"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()的第三个参数中指定哪个路径(即使路径无效),SSL连接都会成功建立。第三个参数只是不能设置为NULL。
我通过运行此查询进行验证:SHOW STATUS LIKE 'Ssl_cipher';
。输出验证了连接已加密(Ssl_cipher => AES256-SHA)。
请问有人可以解释一下这是如何工作的吗?当路径不正确时,为什么连接仍然可以成功工作?RDS服务器是如何进行验证的?