当前位置: 首页 > 知识库问答 >
问题:

使用公钥为Amazon Aurora DB创建加密连接

徐俊楚
2023-03-14

我正在使用Maria JDBC驱动程序创建连接到Amazon Aurora DB我想创建一个安全的连接,所以我在这里阅读

使用MySQL实用程序通过SSL连接到DB群集

从https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem.下载Amazon RDS签名证书的公钥请注意,这将下载名为rds-combined-ca-bundle.pem.的文件

第一个问题:它的安全性如何?任何人都可以从亚马逊AWS下载此pem文件?

我做了一些研究我应该如何连接到Aurora DB与公钥,我发现这两个链接第一,第二

因此,我的代码非常简单:

Class.forName("org.mariadb.jdbc.Driver");

Properties prop = new Properties();

prop.setProperty("javax.net.ssl.trustStore","C:\\temp\\rds-combined-ca-bundle.pem");
prop.setProperty("user",jdbcDetails.username);
prop.setProperty("password",jdbcDetails.getSensitiveData());

    java.sql.Connection conne = DriverManager.getConnection(jdbcDetails.connectionString, prop);
    try (Statement stmt1 = conne.createStatement()) {
        // Execute all but the rest
        ResultSet rs = stmt1.executeQuery("Select 98765 from dual limit 2");
        while(rs.next()) {

            rs.getLong(1);
        }
    }
    conne.close();

第二个问题:公钥文件与加密有什么关系?

以上信息不符合OracleJava信息,这些信息表示:

如果客户端希望对服务器进行身份验证,则客户端的信任存储必须包含服务器的证书

第三个问题:据我所知,如果客户端信任服务器,则不需要他使用此文件

第四个问题:我正在用Wireshark检查连接创建情况,无论有没有这个公钥文件,我都能创建连接,而且Wireshark中的两个案例都是加密的

看起来像这样的东西:

Encrypted Application Data:
eb:62:45:fb:10:50:f7:8c............:b9:0a:52:e7:97:1d:34

共有1个答案

仇浩旷
2023-03-14

基于这个答案,我了解了公钥的用法:

首先,亚马逊AWS Azure留档似乎有点误导——它只与称为MySQL实用程序的特定工具连接相关

第一个答案

"Java肯定可以建立SSL连接,而无需客户端验证服务器的证书链。"

进行密钥交换是为了确保其连接的服务器确实是其预期的服务器(即非可疑服务器)。这意味着它仍然是相同的SSL连接,但如果verifyServerCertificate=false,则不会验证它是否是预期的服务器

回答第四个问题:Currect,代码是用Java编写的,传递SSL参数会使其加密。

因此,使用这些参数给出了所需的?trustServerCertificate=true

 类似资料:
  • 问题内容: 我正在编写一个用于传输文件的小型应用程序,或多或少地将其作为一种学习更多编程加密基础的方法。这个想法是生成一个RSA密钥对,交换公共密钥,并发送AES iv和密钥以进一步解密。我想用接收者的RSA公钥加密AES密钥,如下所示: 然后,我将密钥值写给接收器,并按如下方式解密: 在控制台的另一端,我将其作为输出: 此外,如果我创建一个大小为16的字节数组,并将cipher.doFinal(

  • 我想为这个方法生成的公钥创建文件 因为我正在为移动应用程序生成此密钥,而他们无法读取,所以他们请求文件,而不是作为字符串的公钥 请各位指教,,

  • 一段时间以来,我一直在阅读CodeProject a的一篇文章,该文章解释了如何使用RSA提供程序进行加密和解密: RSA私钥加密 虽然2009年的旧版本有缺陷,但2012年的新版本(支持System.Numerics.BigInteger)似乎更可靠。但这个版本缺少的是一种使用公钥加密和使用私钥解密的方法。 所以,我自己也试过了,但解密时会收到垃圾。我对RSA提供商不熟悉,所以我对这里一无所知。

  • 我使用Delphi XE和Lockbox3.5,我想加密一个字符串,该字符串具有支付网关提供的公钥,需要操作,公钥类似于:------开始公钥------这里的职员------结束公钥------我无法使RSA编解码器读取该公钥,我的代码如下: 编解码器cdcRA链接到CryptoLibrary,密码为(RSA公钥加密系统*),链接模式为空,但此代码失败,并出现内存不足错误。谢谢你的提示。。 演示

  • 我的Android应用程序实现了RSA加密,但后端无法解密应用程序生成的令牌。这是代码,公钥的开始行和结束行在调用之前都被删除了,会有什么问题吗? 后端团队提供了以下可以工作的示例代码,但它是针对桌面Java的。Android库没有base64.getEncoder方法。这和我写的非常相似,但我的就是不起作用。 我比较了每一步的字节数组值。桌面密码和android密码得到的输入完全相同。然而,来自

  • 我想使用带有RSA算法的OpenSSL使用私钥加密文件: 现在,如果我执行解密操作: 此操作需要私钥 我知道我应该使用公钥进行加密,如果我使用私钥,我会得到一个签名。 然而,我想这样做是为了学习。