提问人:Alistair Prestidge 提问时间:7/18/2014 最后编辑:Alistair Prestidge 更新时间:7/21/2014 访问量:888
Mysqli->ssl_set php 接受任何字符串
Mysqli->ssl_set php accepting any string
问:
嗨,我可能遇到了有史以来最奇怪的事情,或者也许是今天的炎热。
我正在尝试使用使用“REQUIRE SSL”设置的用户连接到mysql实例
用户工作正常,从 linux 命令行使用 mysql 一切都按预期工作。
现在,当我使用下面的代码时,使用正确的 real_connect() 参数 php 连接到 mysql 即使我已经将垃圾传递到 ssl_set()
$mysqli->ssl_set('asdad', null, null, null, null);
如果我这样设置ssl_set,或者注释掉该行
$mysqli->ssl_set('', null, null, null, null);
我按预期收到 ssl 错误。
关于为什么它允许使用密钥的随机字符串进行 ssl 连接的任何想法?文档说这是一个文件位置?
$mysqli = mysqli_init(); $mysqli->ssl_set('asdad', null, null, null, null); $connected = $mysqli->real_connect('HOST', 'USER', 'PASSWROD', 'DATABASE', 3306, null, MYSQLI_CLIENT_SSL);
编辑1:
我已经在 3 台 sperete 机器上进行了测试,并遇到了同样的问题。我已经在 php5.3、php5.4 和 php5.5 上进行了测试
编辑2:
如果我完全删除ssl_set并且只设置MYSQLI_CLIENT_SSL它仍然连接。看起来有一个默认证书,或者它没有验证 anthing。
更新1:
所以我认为这是因为这是一个 RDS 实例,而 AWS 是这样说的
These certificates are signed by a certificate authority.
因此,没有必要在PHP中设置自定义证书。然而,为了证明这一点,我回到了命令行并绑定了
mysql -uUSER -pPASSWORD -hHOST --ssl
而不是
mysql -uUSER -pPASSWORD -hHOST --ssl_ca=mysql-ssl-ca-cert.pem
第一个命令不起作用,第二个命令起作用。仍然对这里发生的事情感到非常困惑。
答: 暂无答案
评论