4

我正在尝试仅通过 443 而不是 3306 访问我的 rds mySql db。

在工作台上启用 ssl 选项并输入 mysql-ssl-ca-cert.pem 的路径后,我尝试在我的安全组上禁用 tcp 3306 以确保它使用 443 进行连接,但事实并非如此。

我可以使用下面的 mysql 命令行进行连接,但是一旦我在安全组 mysql -h myinstance.c9akciq32.rds-us-east-1.amazonaws.com --ssl_ca=rds-ssl-ca 上禁用 tcp 443,它又会失败-cert.pem

Amazon 文档指出:Amazon RDS 中的 SSL 支持严格用于加密客户端和数据库实例之间的连接;不应该依赖它来验证服务器。

这是否意味着我只能通过 3306 而不是 443 对 mysql db 进行身份验证,但数据将在传输过程中被加密?

我的问题是我的客户不会在他们的防火墙上打开 3306 出站但 443 当然是打开的。任何帮助表示赞赏。

4

1 回答 1

7

您混淆了 SSL 和 HTTPS。端口 443 是HTTPS 连接的默认端口。MySQL 使用 3306 代替(并且可以通过此端口或任何其他端口使用 SSL 来加密连接)。因此,为 MySQL 连接设置 SSL 加密不会影响使用的端口。

为了使用与标准端口不同的端口,您必须重新配置 MySQL 服务器,而您可能无法对 RDS 实例执行此操作。

可以使用隧道来避开默认端口。在这种情况下,您必须打开一个 SSH 隧道(MySQL Workbench 可以为您执行此操作,或者您使用外部程序,如 Windows 上的 putty 或 *nix 上的 ssh 等操作系统)。有了该隧道(默认情况下使用端口 22,但如果对您很重要,可以为任何其他端口配置),然后您可以将访问从本地端口(此处为 3306,但可以是任何端口)转发到远程端口(可以也可以)。但是,这需要远程端的 SSH 服务器。

于 2014-04-30T07:35:29.740 回答