更新时间:2024-11-26 GMT+08:00
分享

连接数据库(以SSL方式)

用户通过JDBC连接GaussDB服务器时,可以通过开启SSL加密客户端和服务器之间的通讯,为敏感数据在Internet上的传输提供了一种安全保障手段。

本节主要介绍应用程序通过JDBC如何采用SSL的方式对客户端进行配置。

客户端配置

登录GaussDB管理控制台,在“实例管理”页面,单击实例名称进入“基本信息”页面,单击“SSL”处的,下载根证书或捆绑包,将根证书ca.pem放置在客户端。

连接示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放,使用时解密),确保安全。
// 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV。
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;

public class SSL{
    public static void main(String[] args) {
        Properties urlProps = new Properties();
        String urls = "jdbc:gaussdb://$ip:$port/database";
        String userName = System.getenv("EXAMPLE_USERNAME_ENV");
        String password = System.getenv("EXAMPLE_PASSWORD_ENV");
        /**
         * ==================  示例  使用证书
         */
        urlProps.setProperty("sslrootcert", "ca.pem");
        urlProps.setProperty("user", userName);
        urlProps.setProperty("password", password);
        urlProps.setProperty("ssl", "true");
        /* sslmode可配置为:require、verify-ca、verify-full,以下三个示例选择其一*/
        /* ==================  示例2.1  设置sslmode为require,使用证书 */
        urlProps.setProperty("sslmode", "require");
        /* ==================  示例2.2  设置sslmode为verify-ca,使用证书 */
        urlProps.setProperty("sslmode", "verify-ca");
        /* ==================  示例2.3  设置sslmode为verify-full,使用证书(Linux下验证) */
        urls = "jdbc:gaussdb://world:8000/database";
        urlProps.setProperty("sslmode", "verify-full");

        try {
            Class.forName("com.huawei.gaussdb.jdbc.Driver").newInstance();
        } catch (Exception e) {
            e.printStackTrace();
        }
        try {
            Connection conn;
            conn = DriverManager.getConnection(urls,urlProps);
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

相关文档