【问题标题】:Connect to AWS mysql over SSL in PHP?在 PHP 中通过 SSL 连接到 AWS mysql?
【发布时间】:2017-12-02 19:52:17
【问题描述】:

我正在尝试使用 php 和 ssl 连接到(远程)AWS MYSQL 数据库。

  1. 我创建了一个数据库用户,可以从 php 和控制台连接它。

  2. 然后我在数据库中修改了用户使用 SSL 和 "require ssl"

  3. 我仍然可以通过以下方式连接控制台: mysql -h 主机 -u 用户名 -p --ssl

但是在 php 中我得到一个 ERROR 2002。

$con=mysqli_init();
mysqli_ssl_set($con,NULL,NULL,"cacert.pem",NULL,NULL);
$link = mysqli_real_connect($con, "host", "username", "password");

据我所知,ssl_set 参数与 AWS 数据库无关。 How to connect to Amazon RDS via SSL?

我认为它与 mysqli_ssl_set 方法有关,如果没有它,则建立连接并且数据库拒绝访问,这是正确的行为。这可能是客户端的一些配置错误,但我不知道我应该检查什么。

错误是由 mysqli_real_connect 触发的,因为 mysqli_ssl_set 总是返回 true,在它尝试连接之后会收到错误。

【问题讨论】:

  • 收到2002 错误有点奇怪。
  • 奇怪的是,与 2002 错误相关的消息是 无法通过套接字 '%s' (%d) 连接到本地 MySQL 服务器。也许获取完整的消息(特别是 %s%d 设置的内容)可能会有所帮助。
  • 当你使用mysqli_error得到最后一个错误时呢?
  • 证书权限正常吗?如果您通过命令行调用 PHP 代码,它会起作用吗?
  • 在 linux 下的 apache 我会先做 chown www-data:www-data /path/to/cacert.pem 然后 chmod 644 /path/to/cacert.pem (不确定第二个,也许应该是 400 代替)。

标签: php mysql amazon-web-services ssl connection


【解决方案1】:
$servername = "only-ssl-db.ct5b4uz1gops.eu-central-1.rds.amazonaws.com";
$username = "username";
$password = "password";
$dbname = "dbname";

$con = mysqli_init();
if (!$con){
die("mysqli_init failed");
}
mysqli_ssl_set($con,NULL,NULL,'rds-combined-ca-bundle.pem',NULL,'DHE-RSA-AES256-SHA'); 

if (!mysqli_real_connect($con,$servername, $username, $password, $dbname))
{
  die("Connect Error: " . mysqli_connect_error());
}

// Some queries...
echo "Database connected";
printf("Client version: %d\n", mysqli_get_client_version());
mysqli_close($con);

【讨论】:

    【解决方案2】:

    我注意到在我指定端口之前它对我不起作用。以下工作:

        $db = mysqli_init();
        $db->options(MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true);
        $db->ssl_set(NULL, NULL, 'rds-combined-ca-bundle.pem', NULL, NULL);        
        $db->connect($host, $user, $pass, $db, 3306);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-28
      • 2014-06-17
      • 1970-01-01
      • 1970-01-01
      • 2017-11-14
      • 1970-01-01
      • 2014-04-19
      • 1970-01-01
      相关资源
      最近更新 更多