运行`REQUIRE SSL`语句后,为什么我不需要SSL证书连接到我的数据库?

时间:2017-01-27 23:28:53

标签: mysql ssl heroku amazon-rds

我有一个带有MySql数据库的Heroku应用程序,我们正在迁移到新的RDS数据库实例。我跟着this Heroku documentation配置了对新数据库的SSL访问。我确认我的Heroku应用程序可以使用新的连接字符串连接到数据库,并且需要ssl-ca查询参数才能成功连接。

但是,我能够从本地终端连接到数据库而没有任何SSL证书,这让我感到困惑,因为我的理解是所有连接都需要SSL。我有三个其他团队成员(包括一个异地)使用相同的用户名和密码从他们的本地终端连接到数据库,以确认它不是我本地机器特有的东西。基于this post我在运行FLUSH PRIVILEGES语句后尝试运行GRANT以要求SSL。我尝试从MySQL Workbench和Sequel Pro连接到数据库,并且无法在没有SSL证书的情况下进行连接。

我的问题是,当从Heroku或MySQL Workbench和Sequel Pro访问数据库时,当需要使用SSL时,是否有任何理由可以连接到RDS实例而不包含SSL证书?我是否更有可能实际根据需要设置SSL?或者是否有一些配置怪癖允许我和其他人从我们的终端连接,即使需要SSL?

作为参考,以下是我在数据库上运行SHOW GRANTS时使用的用户配置文件: GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'beyond12'@'%' IDENTIFIED BY PASSWORD '*FFC9CC1968DAE51A82EE9BB70672D5F9D2BE957E' REQUIRE SSL WITH GRANT OPTION

1 个答案:

答案 0 :(得分:0)

这在RDS Postgres实例中对我有用。

我遇到了同样的问题,我的实例Postgres RDS允许没有SSL证书的连接,我找到这个AWS documentation的寻找原因,他们在其中解释了如何为所有连接建立必需的SSL连接,作为简历,他们向您解释了要更改名为 rds.force_ssl 参数组值,请记住,在更改此参数值之前,请先更改参数组,因为您无法修改默认值参数组。