如何设置 SSL 以连接到 RDS MySQL 实例

How do you setup SSL to connect to an RDS MySQL Instance

我是 RDS 实例和安全的新手,我想知道如何设置 SSL 以连接到我的 MySQL RDS 实例,以便我可以执行以下操作

  1. 通过 SequelPro 应用程序连接到我的 RDS
  2. 通过 PHP 连接(我的框架是 laravel)

我到处找,AWS 只给了我一个 rds-combined-ca-bundle.pem 密钥和一个 rds-ca-2015-{regional-key} 我什至不知道如何处理这些. RDS Bundle and MySQL Specific Link

SSL需要密钥文件、证书文件和CA证书文件。

任何帮助都会很棒。谢谢

您无法在RDS产品上通过SSH访问底层服务器。如果您绝对必须具有访问权限,则需要在 EC2 实例上安装数据库并放弃使用 RDS

的好处

https://forums.aws.amazon.com/message.jspa?messageID=153017

您 link 的文档直接指定了如何通过 SSH 连接到 RDS 实例:

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.SSLSupport

mysql -h myinstance.c9akciq32.rds-us-east-1.amazonaws.com \
  --ssl-ca=[full path]rds-combined-ca-bundle.pem --ssl-verify-server-cert

所以现在的问题是:

如何让 SequelPro 通过 SSH 连接:

根据 SequelPro documentation,它只能使用 SSH 隧道通过 SSH 连接。

因此,您需要通过 SSH 从本地计算机连接到 VPC 中的 EC2 实例。获取此设置与您的 RDS 实例无关。建立该连接后,您将使用此隧道与您的 RDS 实例建立非 SSH 连接。

参见:https://sequelpro.com/docs/get-started/get-connected/remote

从您的 PHP 应用程序连接到 RDS:

同样,PHP 似乎没有对 MySQL 连接的内置 SSH 支持。

Stack Overflow 上有很多关于此主题的 QA:

  • Connect to a MySQL server over SSH in PHP
  • Connect to a mysql database via SSH through PHP

结论

在这两个帐户中,SSH 隧道似乎是唯一的出路。所以你要么:

  • 住在隧道里,
  • 使用标准连接(非加密),或
  • 使用其他 tools/mechanisms 支持 SSH 的连接。