使用SSL 443而不是3306访问rds MySql数据库

Nia*_*all 3 mysql ssl rds mysql-workbench amazon-web-services

我正在尝试仅通过443而不是3306访问rds mySql数据库。

在工作台上启用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当然是打开的。任何帮助表示赞赏。

Mik*_*hke 5

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

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

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