数据仓库服务 GAUSSDB(DWS)-使用SSL进行安全的TCP/IP连接:SSL认证方式及客户端参数介绍

时间:2024-09-13 09:51:45

SSL认证方式及客户端参数介绍

SSL认证有两种认证方式,如表1所示。从安全性考虑,建议使用双向认证方式。

表1 认证方式

认证方式

含义

配置客户端环境变量

维护建议

双向认证(推荐)

客户端验证服务器证书的有效性,同时服务器端也要验证客户端证书的有效性,只有认证成功,连接才能建立。

设置如下环境变量:

  • PGSSLCERT
  • PGSSLKEY
  • PGSSLROOTCERT
  • PGSSLMODE

该方式应用于安全性要求较高的场景。使用此方式时,建议设置客户端的PGSSLMODE变量为verify-ca。确保了网络数据的安全性。

单向认证

客户端只验证服务器证书的有效性,而服务器端不验证客户端证书的有效性。服务器加载证书信息并发送给客户端,客户端使用根证书来验证服务器端证书的有效性。

设置如下环境变量:

  • PGSSLROOTCERT
  • PGSSLMODE

为防止基于TCP链接的安全攻击,建议使用SSL证书认证功能。除配置客户端根证书外,建议客户端使用PGSSLMODE变量为verify-ca方式连接。

在客户端配置SSL认证相关的环境变量,详细信息请参见表2

客户端环境变量的路径以“/home/dbadmin/dws_ssl/”为例,在实际操作中请使用实际路径进行替换。

表2 客户端参数

环境变量

描述

取值说明

PGSSLCERT

指定客户端证书文件,包含客户端的公钥。客户端证书用以表明客户端身份的合法性,公钥将发送给对端用来对数据进行加密。

必须包含文件的绝对路径,如:
export PGSSLCERT='/home/dbadmin/dws_ssl/sslcert/client.crt'

默认值:空

PGSSLKEY

指定客户端私钥文件,用以数字签名和对公钥加密的数据进行解密。

必须包含文件的绝对路径,如:
export PGSSLKEY='/home/dbadmin/dws_ssl/sslcert/client.key'

默认值:空

PGSSLMODE

设置是否和服务器进行SSL连接协商,以及指定SSL连接的优先级。

取值及含义

  • disable:只尝试非SSL连接。
  • allow:首先尝试非SSL连接,如果连接失败,再尝试SSL连接。
  • prefer:首先尝试SSL连接,如果连接失败,将尝试非SSL连接。
  • require:只尝试SSL连接。如果存在CA文件,则按设置成verify-ca的方式验证。
  • verify-ca:只尝试SSL连接,并且验证服务器是否具有由可信任的证书机构签发的证书。
  • verify-full: GaussDB (DWS)不支持此模式。

默认值:prefer

说明:

若集群外访问客户端时,部分节点出现报错:ssl SYSCALL error。则可执行export PGSSLMODE="allow"或export PGSSLMODE="prefer"。

PGSSLROOTCERT

指定为客户端颁发证书的根证书文件,根证书用于验证服务器证书的有效性。

必须包含文件的绝对路径,如:
export PGSSLROOTCERT='/home/dbadmin/dws_ssl/sslcert/certca.pem'

默认值:

PGSSLCRL

指定证书吊销列表文件,用于验证服务器证书是否在废弃证书列表中,如果在,则服务器证书将会被视为无效证书。

必须包含文件的绝对路径,如:
export PGSSLCRL='/home/dbadmin/dws_ssl/sslcert/sslcrl-file.crl'

默认值:

support.huaweicloud.com/mgtg-dws/dws_01_0038.html