【问题标题】:How to connect to an Amazon MySQL RDS instance via PHP over SSL如何通过 SSL 上的 PHP 连接到 Amazon MySQL RDS 实例
【发布时间】:2011-06-09 09:37:03
【问题描述】:

我有一个运行 WordPress 站点的 EC2 实例。 WordPress 数据库位于 RDS 实例上。我想通过 SSL 连接到数据库。

据我了解,WordPress 开箱即用的 MySQL 扩展不支持 SSL。所以,我安装了一个使用 MySQLi 的 WordPress 数据库脚本,它支持 SSL。

我遇到的问题是亚马逊只提供一个密钥文件(more info),而我能找到的使用 MySQLi over SSL 的所有示例都至少包括 3 个文件:

$db = mysqli_init();
$db->ssl_set('server-key.pem','server-cert.pem','cacert.pem',NULL,NULL); 

我可以从 mysql 命令行应用程序通过 SSL 连接到我的数据库。鉴于我只有 1 个文件,谁能告诉我我需要做什么才能使 PHP 的 MySQLi 扩展工作?

【问题讨论】:

  • 如果你跳过这些参数会发生什么?
  • 请注意,亚马逊文档指出,同一区域内的流量永远不会离开亚马逊的网络。因此,这包括一个特定区域内所有可用区之间的流量。
  • 另外,“使用 MySQLi 的 WordPress 数据库脚本”的名称/链接是什么?谢谢!
  • 已经有一段时间了,但我相信我按照这些说明修改了 wp-db.php:wordpress.org/support/topic/mysqli

标签: php ssl amazon-ec2 mysqli amazon-rds


【解决方案1】:

事实证明,这并没有我想象的那么复杂。调高错误报告级别会发现我的代码中有一个我没有发现的错误。以这种方式使用 ssl_set 有效:

$db = mysqli_init();
$db->ssl_set(NULL,NULL,'/path/to/mysql-ssl-ca-cert.pem',NULL,NULL);
$db->real_connect($dbhost,$dbuser,$dbpassword,$dbname);

【讨论】:

    【解决方案2】:

    试试这个:

    $db = mysqli_init();
    $db->ssl_set(null, 'https://rds.amazonaws.com/doc/mysql-ssl-ca-cert.pem', null, null, null);
    

    【讨论】:

      猜你喜欢
      • 2015-10-27
      • 2020-04-28
      • 1970-01-01
      • 2013-10-08
      • 2018-05-20
      • 2014-02-17
      • 1970-01-01
      • 2018-12-15
      • 2019-04-03
      相关资源
      最近更新 更多