我试图通过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。任何帮助赞赏。
答案 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服务器。