代码之家  ›  专栏  ›  技术社区  ›  2Big2BeSmall

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

  •  1
  • 2Big2BeSmall  · 技术社区  · 7 年前

    我使用Maria JDBC驱动程序创建到Amazon Aurora DB的连接 here

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

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

    第一个问题: 它的安全性如何?任何人都可以下载 pem 文件来自 Amazon AWS ?

    我做了一些研究,我应该如何用公钥连接到Aurora DB 我找到了这两个链接 First , Second

    所以我的代码很简单:

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

    现在的情况怎么样 public key file 与加密相关?

    以上信息与 Oracle Java information 也就是说:

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

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

    第四个问题: 我在用Wireshark检查连接创建 公钥文件 我能够创建连接,Wireshark中的两个案例都是加密的

    看起来是这样的:

    Encrypted Application Data:
    eb:62:45:fb:10:50:f7:8c............:b9:0a:52:e7:97:1d:34
    
    1 回复  |  直到 4 年前
        1
  •  1
  •   Community Egal    4 年前

    基于 this answer

    第一 Amazon AWS Azure文档似乎有点误导-它只与名为 MySQL实用程序

    “Java完全可以在没有客户端的情况下建立SSL连接 正在验证服务器的证书链。"

    这意味着它仍然是相同的SSL连接,但当verifyServerCertificate=false时,它不会验证它是否是预期的服务器

    回答第四个问题: 目前,代码是用Java编写的,传递SSL参数可以对其进行加密。

    因此,使用这些参数可以提供所需的 ?trustServerCertificate=true&useSSL=true&requireSSL=true&verifyServerCertificate=false