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

时间:2014-04-29 23:00:35

标签: mysql ssl amazon-web-services mysql-workbench rds

我试图通过443而不是3306来访问我的rds mySql数据库。

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

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

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

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

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

1 个答案:

答案 0 :(得分:5)

您正在混淆SSL和HTTPS。端口443是default port for HTTPS connections。 MySQL使用3306代替(并且可以通过此端口或任何其他方式使用SSL来加密连接)。因此,为MySQL连接设置SSL加密不会影响已使用的端口。

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

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