Mysqli->ssl_set php 接受任何字符串

Mysqli->ssl_set php accepting any string

提问人:Alistair Prestidge 提问时间:7/18/2014 最后编辑:Alistair Prestidge 更新时间:7/21/2014 访问量:888

问:

嗨,我可能遇到了有史以来最奇怪的事情,或者也许是今天的炎热。

我正在尝试使用使用“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

第一个命令不起作用,第二个命令起作用。仍然对这里发生的事情感到非常困惑。

php ssl mysqli

评论

0赞 Machavity 7/18/2014
我不知道这是重复的,但可能有用 stackoverflow.com/questions/14053160/......
0赞 Alistair Prestidge 7/19/2014
谢谢,但我之前看过那个帖子。如果我没看错的话,他们根本无法连接。我可以使用无效/不存在的 ssl 证书进行连接。我不应该这样做。如果 php somehwere 中有一个默认证书并且它通过 ssl 连接但没有验证连接,我感到非常恼火。这可能吗?
0赞 Jack Humphries 8/6/2015
你有没有想过这一点?我现在遇到了同样的问题,我一辈子都无法弄清楚!

答: 暂无答案