
# 连接数据库（以SSL方式）
数据库的Go驱动支持SSL连接数据库，当开启SSL模式后，如果Go驱动采用SSL方式连接数据库服务端时，Go驱动默认走TLS 1.3标准协议，支持的tls版本最低为1.2。本小节主要介绍应用程序通过Go驱动如何采用SSL的方式对客户端进行配置。
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
基于SSL的证书认证方式不需要在连接串里面指定用户密码。
#### 客户端配置
前置条件：登录GaussDB管理控制台，在"实例管理"页面，单击实例名称进入"基本信息"页面，单击"SSL"处的![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/figure/zh-cn_image_0000002527059720.png)，下载根证书或捆绑包，将根证书ca.pem放置在客户端。
**示例：**
```
package main
//依赖包根据环境中依赖包路径设置
import (
 "database/sql"
 "fmt"
 _ [go驱动模块名] /*请根据go驱动实际模块名替换*/
 "log"
)
// 以单向认证为例，本示例以用户名和密码保存在环境变量中为例，运行本示例前请先在本地环境中设置环境变量（环境变量名称请根据自身情况进行设置）
func main() {
 hostip := os.Getenv("GOHOSTIP")   //GOHOSTIP为写入环境变量的IP地址
 port := os.Getenv("GOPORT")       //GOPORT为写入环境变量的port
 usrname := os.Getenv("GOUSRNAME") //GOUSRNAME为写入环境变量的用户名
 passwd := os.Getenv("GOPASSWD")   //GOPASSWD为写入环境变量的用户密码
 sslpasswd := os.Getenv("GOSSLPASSWD") //GOSSLPASSWD为写入环境变量的密码短语
 dsnStr := "host=" + hostip + " port=" + port + " user=" + usrname + " password=" + passwd + " dbname=gaussdb"
 parameters := []string{
  " sslmode=verify-ca sslrootcert=certs/ca.pem",
 }
 for _, param := range parameters {
  db, err := sql.Open("gaussdb", dsnStr+param)
  if err != nil {
   log.Fatal(err)
  }
  var f1 int
  err = db.QueryRow("select 1").Scan(&f1)
  if err != nil {
   log.Fatal(err)
} else {
   fmt.Printf("RESULT: select 1: %d\n", f1)
  }
  db.Close()
 }
}
```
