gpt4 book ai didi

php - 使用 SSL 远程连接时出现 MySQL 错误

转载 作者:行者123 更新时间:2023-11-29 02:54:02 32 4
gpt4 key购买 nike

我在一台主机上安装了一个 mysql 服务器,我想通过加密连接从另一台主机连接到 mysql 服务器(都运行 Ubuntu 12.04)。我已经创建并传输了证书并手动测试了设置。我可以使用 Linux 命令行中的 key 和证书连接到远程 mysql 服务器,因此服务器配置似乎是正确的:

$ mysql -h x.x.x.x -u user01 -p --ssl-ca=ca.pem --ssl-cert=cert.pem --ssl-key=key.pem

建立的连接(输入密码后)已加密,一切正常:

 mysql> show status like 'Ssl_cipher';
+---------------+--------------------+
| Variable_name | Value |
+---------------+--------------------+
| Ssl_cipher | DHE-RSA-AES256-SHA |
+---------------+--------------------+
1 row in set (0.00 sec)

但是,如果我尝试在 PHP 中连接到 mysql 服务器,则无法正常工作:

$obj = mysqli_init();
mysqli_options($obj, MYSQLI_OPT_CONNECT_TIMEOUT, 5);
mysqli_ssl_set($obj, "/etc/mysql/key.pem", "/etc/mysql/cert.pem", "/etc/mysql/ca.pem", null, null);
mysqli_real_connect($obj, NODE_IP, NODE_USER, NODE_PASSWORD, NODE_DATABASE);

我收到以下错误:

PHP Warning:  mysqli_real_connect(): SSL operation failed with code 1. OpenSSL Error messages:
error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small in /var/www/internal/test.php on line 11

当我定义密码时,例如mysqli_ssl_set 函数(最后一个参数)中的“DHE-RSA-AES256-SHA”,我得到同样的错误,甚至在实际工作的命令行手动连接中使用了相同的密码(见上文)。当我定义更强的密码时,例如“ECDHE-RSA-AES256-GCM-SHA384”,我收到一条新的错误消息:

PHP Warning:  mysqli_real_connect(): SSL operation failed with code 1. OpenSSL Error messages:
error:140830B5:SSL routines:SSL3_CLIENT_HELLO:no ciphers available in /var/www/internal/test.php on line 11

我不知道出了什么问题,有什么想法吗?谢谢!

最佳答案

我可以通过在 mysqli_ssl_set() 的密码规范中使用“AES256-SHA”来解决这个 Diffie-Hellman key 长度问题。

谢谢!

关于php - 使用 SSL 远程连接时出现 MySQL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32682168/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com