【问题标题】:Connecting to an instance of mysql on was from java client application连接到 mysql on 实例来自 java 客户端应用程序
【发布时间】:2014-11-30 13:22:32
【问题描述】:
我已经在互联网上搜索了几个小时,但似乎无法找到我想要的分步教程。我正在编写一个 java 桌面应用程序,它连接到亚马逊网络服务上的 mysql 数据库实例。这工作正常。现在我想更改连接,使其成为 SSL。根据 aws 网站,每个数据库实例都安装了一个证书。公钥位于 https://rds.amazonaws.com/doc/mysql-ssl-ca-cert.pem 。我知道我需要在我的 java 程序中修改连接 url 以包含属性 useSSL 和 requireSSL 并将它们设置为 true。我已经下载了公钥并设置了上述两个属性。接下来我该怎么做?我是否需要由受信任的权威机构签署的证书,还是已经安装在数据库实例上的证书?如何在我的程序中使用下载的公钥?我需要遵循哪些步骤?我将不胜感激分步说明。
【问题讨论】:
标签:
java
mysql
ssl
amazon-web-services
【解决方案1】:
多亏了这个链接http://forums.visokio.com/discussion/2651/data-sources-connecting-to-amazon-rds-database-mysql-using-ssl,我终于找到了解决方案。首先,我从 aws RD 站点下载了公钥。然后我导航到 ire/library/securit 文件夹并将名为 carets 的文件复制到与下载的 pen 文件相同的目录中。然后我运行以下命令:
keytool -import -alias mysqlServerCACert -file mysql-ssl-ca-cert.pem -keystore cacerts
然后我指定我要信任此证书并输入密码(即“更改它”)。然后,我将 cacerts 文件复制到我的 Java 应用程序中的一个文件夹(称为 cert)中,并在连接到数据库之前使用了以下命令:
System.setProperty("javax.net.ssl.trustStore","cert/cacerts");
System.setProperty("javax.net.ssl.trustStorePassword","changeit");
对我来说一切都很好。