Tag: amazon rds

Java上的SSLexception:Path不与任何信任锚链接

我正在尝试使用MySQL Connector/J (版本5.1.45 )和此AWS RDS证书在Java建立与MySQL database的SSL连接: https : 5.1.45 CA-bundle.pem 但我得到以下Exception : java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors 我可以将这个Exception追溯到line 297的MySQL Connector/J class ExportControlled.java : CertPathValidatorResult result = this.validator.validate(certPath, this.validatorParams); 然后我无法继续下去,因为它进入JRE安全类,如CertPathValidator 。 由于我使用MySQL Connector/J来完成整个SSL魔术,我的双手并列,我不知道发生了什么或如何解决这个问题。 证书在MySQL Workbench和Intelli J IDEA Database ,所以我不知道为什么它现在被拒绝了。 我该如何解决?

无法使用Eclipse访问Amazon RDS

我刚刚使用它的向导在Amazon RDS中安装了MySQL。 我选择了我的EC2实例使用的相同安全组。 我试图通过Eclipse AWS工具包访问它。 我所做的是右键单击RDS实例并单击“Conenct”。 然后它询问密码并尝试连接,但最终出现以下错误。 Unable to connect to RDS database java.lang.reflect.InvocationTargetException 没有一个解决方案,我已经看到有关此事的数量。

使用IAM身份validation和Spring JDBC(DataSource和JdbcTemplace)访问AWS RDS

我无法弄清楚如何实现这一点。 任何帮助和/或指针将不胜感激。 目前,我的Java / Spring应用程序后端部署在EC2上,并使用常规的Spring JDBC设置成功访问RDS上的MySQL 。 也就是说,将数据库信息存储在application.properties ,并在@Configuration类中配置DataSource和JdbcTemplate 。 一切正常。 现在,我需要安全地访问RDS上的MySQL。 RDS实例已启用IAM身份validation。 我还成功创建了IAM角色并应用了内联策略 。 然后,按照此链接上的AWS RDS文档和Java示例,我能够使用身份validation令牌和我创建的用户而不是常规的db用户名和密码,从独立的Java类成功访问数据库。 这个独立的Java类直接处理“ Connection ”对象。 我被困的地方是我如何将其转换为Spring JDBC配置 。 也就是说,在我的@Configuration类中为此设置DataSource和JdbcTemplate bean。 实现这一目标的正确/正确方法是什么? —–编辑 – 开始—– 我试图将其实现为可用于多个项目的库。 也就是说,它将用作JAR并在项目的POM文件中声明为依赖项。 该库将包括可配置的AWS服务,例如使用通用DB用户名和密码的RDS访问,使用IAM认证的RDS访问,用于数据加密的KMS(CMK /数据密钥)等。 想法是根据项目在任何Web / app服务器上使用此库。 希望这更能说明我的需要。 —–编辑 – 结束—– DataSource内部有getConnection(),所以我基本上可以创建自己的DataSource实现来实现我想要的。 但这是一个好方法吗? 就像是: public class MyDataSource implements DataSource { @Override public Connection getConnection() throws SQLException […]

使用Java建立与MySQL的安全连接Amazon RDS(SSL / TLS)

我正在尝试使用JDK 1.8和MySQL Connector / J版本5.1.23安全地连接到Amazon RDS,我对MySQL Connector / J文档中的说明感到困惑。 说明指出在当前目录中创建信任库并导入服务器的CA证书。 当我运行以下命令时,我被要求输入密码,我不知道输入什么: keytool -import -alias mysqlServerCACert -file file_location.pem -keystore truststore 另一方面,亚马逊的指示指出证书由证书颁发机构签名。 SSL证书包括数据库实例端点作为公共名称(CN)。 公钥也存储在http://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem中 。 虽然我理解SSL / TSL和私钥/公钥的概念,但我很困惑如何实现它? 当我运行SHOW VARIABLES LIKE ‘have_ssl’; 命令我收到“是”作为值。 当我连接到数据库并运行SHOW SESSION STATUS LIKE ‘Ssl_version’; ,我没有收到任何价值。 如何建立从Java到MySQL数据库的安全连接? 更新:我使用的是ubuntu,我使用keytool在JRE目录/usr/lib/jvm/java/jre/生成truststore.jks文件。 我还执行了以下命令: GRANT USAGE ON db_name.* To ‘username’@’address’ REQUIRE SSL; 以下代码是我连接数据库的方式: import com.mysql.jdbc.Connection; public class mainClass{ public […]

如何使用Play Framework通过SSL连接到远程MySQL数据库?

我在分布式环境中部署Play应用程序,由远程MySQL数据库支持。 具体来说,应用程序托管在heroku上,数据库位于Amazon RDS上(尽管这实际上适用于任何远程数据库连接)。 由于数据库不仅仅是在localhost上,我更喜欢远程MySQL连接是通过SSL进行安全的。 给定要信任的CA证书,只有在可以validation主机证书的情况下,如何配置Play应用程序才能通过SSL连接到MySQL服务器? 假设这是当前的数据库配置: db.default.driver=com.mysql.jdbc.Driver db.default.url=”jdbc:mysql://url.to.database/test_db” db.default.user=root db.default.password=”….”