java - 连接到 mysql 的实例来自 java 客户端应用程序

标签 java mysql ssl amazon-web-services

我已经在 Internet 上搜索了几个小时,但似乎找不到我想要的分步教程。我正在编写一个连接到亚马逊网络服务上的 mysql 数据库实例的 java 桌面应用程序。这很好用。现在我想更改连接,使其成为 SSL。根据 aws 网站,每个数据库实例都安装了一个证书。公钥可在 https://rds.amazonaws.com/doc/mysql-ssl-ca-cert.pem 获得.我知道我需要修改我的 java 程序中的连接 url 以包含属性 useSSL 和 requireSSL 并将它们设置为 true。我已经下载了公钥并设置了以上两个属性。接下来我该做什么?我是否需要由可信机构签署的证书,或者该证书是否已安装在数据库实例上?如何在我的程序中使用下载的公钥?我需要遵循哪些步骤?我将不胜感激分步说明。

最佳答案

经过大量搜索,我终于能够通过此链接找到解决方案 http://forums.visokio.com/discussion/2651/data-sources-connecting-to-amazon-rds-database-mysql-using-ssl .首先,我从 aws RD 站点下载了公钥。然后我导航到 ire/library/securit 文件夹并将名为 carets 的文件复制到与下载的笔文件相同的目录中。然后我运行了以下命令:

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");

一切对我来说都很好。

关于java - 连接到 mysql 的实例来自 java 客户端应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27213687/

相关文章:

javascript - 我如何在发布请求javascript中包含ssl证书

java - 如何使用 java 在 linux 中打印根目录中的文件和文件夹列表

java - 使用插件与 appView.addJavascriptInterface 的不同之处

java - 在构造函数或后方法中初始化 CDI 注入(inject)组件?

php - $_FILES 未设置

java - 尝试从 SSLSocket 读取时获取 EOFException

java - 当 android 设备处于 wifi 时,SSLSocket 在 getInputStream 处挂起

java - 通过 Jackson ObjectMapper 将字符串序列化为 JSON 作为名称-值

mysql - 用于起始字符序列 mysql 5.1 的正则表达式

mysql - 从 MySql 中的一列中提取多个值