云数据库 GaussDB-连接数据库(以SSL方式):客户端配置

时间:2023-11-01 16:22:17

客户端配置

上传证书文件,将在服务端配置(服务端配置请联系管理员)操作中生成的文件client.key、client.crt、cacert.pem放置在客户端。

示例一:

// 以双向认证为例func main() { dsnStr := "host=127.0.0.1,127.0.0.2 port=1611,1622 user=testuser password=XXXXXX dbname=postgres autoBalance=shuffle sslcert=certs/client.crt sslkey=certs/client.key sslpassword=XXXXXXXX " parameters := []string {  " sslmode=require",  " sslmode=verify-ca sslrootcert=certs/cacert.pem", } for _, param := range parameters {  db, err:= sql.Open("opengauss", 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() }}

示例二:

// 以验证sslpassword为主func main() { dsnStr := "host=127.0.0.1,127.0.0.2 port=1611,1622 user=testuser password=XXXXXXXX dbname=postgres autoBalance=shuffle" connStrs := []string {  " sslmode=verify-ca sslcert=certs/client_rsa.crt sslkey=certs/client_rsa.key sslpassword=XXXXXXXX sslrootcert=certs/cacert_rsa.pem",  " sslmode=verify-ca sslcert=certs/client_ecdsa.crt sslkey=certs/client_ecdsa.key sslpassword=XXXXXXXX sslrootcert=certs/cacert_ecdsa.pem", } for _, connStr := range connStrs {  db, err := sql.Open("opengauss", dsnStr + connStr)  if err != nil {   log.Fatal(err)  }  var f1 int  err = db.QueryRow("select 1").Scan(&f1)  if err != nil {   if !strings.HasPrefix(err.Error(), "connect failed.") {    log.Fatal(err)   }  }  db.Close() }}
support.huaweicloud.com/distributed-devg-v3-opengauss/gaussdb-12-0237.html