
# 以SSL方式连接
用户通过JDBC连接GaussDB服务器时，可以通过开启SSL加密客户端和服务器之间的通讯，为敏感数据在Internet上的传输提供一种安全保障手段。本小节中，连接数据库采用的是接口三：DriverManager.getConnection(String url, Properties info)。
#### 使用证书认证
前置条件：登录GaussDB管理控制台，在"实例管理"页面，单击实例名称进入"基本信息"页面，单击"SSL"处的![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/figure/zh-cn_image_0000002526897500.png)，下载根证书或捆绑包，将根证书ca.pem放置在客户端。
使用客户端配置证书的方式连接数据库的命令如下：
1. 导入java.sql.Connection、java.sql.DriverManager、java.util.Properties。 
   此外，用户需要根据实际的应用场景，再导入其他的接口和类，详见[JDBC接口参考](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0070.html#ZH-CN_TOPIC_0000002559105491)。
   ```
   import java.sql.Connection;
   import java.sql.DriverManager;
   import java.util.Properties;
   ```
   
   
2. 指定数据库sourceURL（$ip、$port、database需要用户自行修改）、用户名和密码。 
   用户名和密码直接写到代码中有很大的安全风险，建议在环境变量中存放。
   ```
   String sourceURL = "jdbc:gaussdb://$ip:$port/database";
   Properties urlProps = new Properties();
   urlProps.setProperty("user", System.getenv("EXAMPLE_USERNAME_ENV"));
   urlProps.setProperty("password", System.getenv("EXAMPLE_PASSWORD_ENV"));
   ```
   
   
3. 设置SSL属性为true，在客户端配置ca.pem根证书。 
   ```
   urlProps.setProperty("ssl", "true");
   urlProps.setProperty("sslrootcert", "ca.pem");;
   ```
   
   
4. 配置sslmode。 
   sslmode设置值：require、verify-ca、verify-full，参数介绍详见[sslmode](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-1820.html#ZH-CN_TOPIC_0000002527825774__zh-cn_topic_0000002558216641_p1631910611469)。客户根据应用场景选择一种即可。
   ```
   /* 设置sslmode为require */
   urlProps.setProperty("sslmode", "require");
   /* 设置sslmode为verify-ca */
   urlProps.setProperty("sslmode", "verify-ca");
   /* 设置sslmode为verify-full（Linux下验证） */
   urlProps.setProperty("sslmode", "verify-full");
   ```
   
   
5. 加载驱动。 
   1. 在代码运行工具（如IDE）中添加gaussdbjdbc.jar包。
   
   2. 执行以下命令加载数据库驱动程序"com.huawei.gaussdb.jdbc.Driver"。
   
   
   ```
   Class.forName("com.huawei.gaussdb.jdbc.Driver");
   ```
   
   
6. 创建数据库连接。 
   调用DriverManager.getConnection(String url, Properties info)，进行数据库连接。
   ```
   Connection conn = DriverManager.getConnection(sourceURL,urlProps);
   ```
   
   
 
