#配置可信信道

在配置可信信道前,请先自行了解其配置规则,并根据实际需求选择需要配置的可信信道以及选择合适的加密协议。

配置可信信道后,后续需关注相应证书有效期,并在证书过期前及时替换证书

# 客户端<->服务端可信信道

数据库客户端<->服务端可信信道支持采用SSL协议TLCP协议,可按需选配其一。

如需开启数据库客户端<->服务端可信信道,必须在每台数据库服务器上存放正确的且在有效期内的服务器证书文件并完成数据库的相关配置。在每个需要使用客户端/驱动连接数据库的设备上也理应存放并配置正确的且在有效期内的客户端证书文件。

Note:

采用SSL协议时,在客户端/驱动所在设备上配置相应证书是可选操作。

  • 若配置,必须配置为正确的且在有效期内的CA根证书文件。

  • 若不配置(即单向SSL可信信道,不推荐),不影响加密通信能力,但可能存在中间人攻击等风险。

# 采用SSL协议

# 前提条件

  • 已生成SSL协议相关证书

  • 已在每台数据库服务器上规划并创建证书文件的存放路径,每个文件的路径需一致,YashanDB的安装用户(即yashan)需具备对应路径的全部权限,本文以统一存放在/data/yashan/ssl路径为例。

    $ cd /data/yashan
    $ mkdir ssl
    
  • 配置可信信道需重启数据库。

# 步骤1:服务端配置

  1. 使用Linux命令复制服务端所需证书文件至每台数据库服务器的指定路径。

  2. 以DBA用户连接并登录数据库。

    $ yasql sales/********@192.168.1.2:1688
    YashanDB SQL Enterprise Edition Release {version_number} x86_64
    
    Connected to:
    YashanDB Server Enterprise Edition Release {version_number} x86_64 - Linux
    
    SQL> 
    
  3. 开启SSL可信信道开关,配置服务器各类证书路径。

    ALTER SYSTEM SET SSL_ENABLE = ON SCOPE=spfile;
    ALTER SYSTEM SET SSL_CERT_FILE = /data/yashan/ssl/server.crt SCOPE=spfile;
    ALTER SYSTEM SET SSL_DH_PARAM_FILE = /data/yashan/ssl/dhparam.pem SCOPE=spfile;
    ALTER SYSTEM SET SSL_KEY_FILE = /data/yashan/ssl/server.key SCOPE=spfile;
    

    Warn:

    如果打开了SSL可信信道开关,但未配置证书路径或配置的路径不正确,数据库将无法启动。

  4. 重启数据库使配置生效。

# 步骤2:客户端配置

本文以Linux平台为例介绍客户端配置。

  1. 下载CA根证书至本地路径,例如/home/yasdb/cert。

  2. 在YashanDB客户端文件夹中新建client文件夹,并于client文件夹中新建空文件yasc_env.ini。

    cd /home/yasdb/yashandb_client
    $ mkdir client
    $ cd client
    $ vi yasc_env.ini
    
  3. 设置环境变量。

    $ vi ~/.bashrc
    export YASDB_HOME=/home/yasdb/yashandb_client
    $ source ~/.bashrc
    

    Note:

    YASDB_HOME路径需指向YashanDB客户端文件夹。

  4. 在$YASDB_HOME/client/yasc_env.ini中增加如下配置:

    ssl_root_cer = /home/yasdb/cert/root.crt
    

    其中,配置中的路径可指定为绝对或相对路径,但不能为含有../的相对路径,且系统按前255字节长度进行文件读取。

# 采用TLCP协议

# 前提条件

  • 已生成TLCP协议相关证书

  • 已在每台数据库服务器上规划并创建证书文件的存放路径,每个文件的路径需一致,YashanDB的安装用户(即yashan)需具备对应路径的全部权限,本文以统一存放在/data/yashan/tlcp路径为例。

    $ cd /data/yashan
    $ mkdir tlcp
    
  • 配置可信信道需重启数据库。

# 步骤1:服务端配置

  1. 使用Linux命令复制服务端所需证书文件至每台数据库服务器的指定路径。

  2. 以DBA用户连接并登录数据库。

    $ yasql sales/********@192.168.1.2:1688
    YashanDB SQL Enterprise Edition Release {version_number} x86_64
    
    Connected to:
    YashanDB Server Enterprise Edition Release {version_number} x86_64 - Linux
    
    SQL> 
    
  3. 开启TLCP可信信道开关,配置服务器各类证书路径。

    ALTER SYSTEM SET SSL_ENABLE = ON SCOPE=spfile;
    ALTER SYSTEM SET ENCRYPT_TYPE = tlcp SCOPE=spfile;
    ALTER SYSTEM SET TLCP_CERT_FILE = /data/yashan/tlcp/double_certs.pem SCOPE=spfile;
    ALTER SYSTEM SET TLCP_SIGNKEY_FILE = /data/yashan/tlcp/signkey.pem SCOPE=spfile;
    ALTER SYSTEM SET TLCP_ENCKEY_FILE = /data/yashan/tlcp/enckey.pem SCOPE=spfile;
    ALTER SYSTEM SET TLCP_CACERT_FILE = /data/yashan/tlcp/cacert.pem SCOPE=spfile;
    ALTER SYSTEM SET TLCP_PASS_FILE = /data/yashan/tlcp/tlcpPass SCOPE=spfile;
    

    Warn:

    如果打开了TLCP可信信道,但未配置证书路径或配置路径不正确,数据库将无法启动。

  4. 重启数据库使配置生效。

# 步骤2:客户端配置

本文以Linux平台为例介绍客户端配置。

  1. 下载客户端所需证书文件至本地路径,例如/home/yasdb/cert。

  2. 在YashanDB客户端文件夹中新建client文件夹,并于client文件夹中新建空文件yasc_env.ini。

    cd /home/yasdb/yashandb_client
    $ mkdir client
    $ cd client
    $ vi yasc_env.ini
    
  3. 设置环境变量。

    $ vi ~/.bashrc
    export YASDB_HOME=/home/yasdb/yashandb_client
    $ source ~/.bashrc
    

    Note:

    YASDB_HOME路径需要指向YashanDB客户端文件夹。

  4. 在${YASDB_HOME}/client/yasc_env.ini中增加如下配置:

    TLCP_CACERT_FILE=/home/yasdb/cert/rootcacert.pem
    TLCP_CERT_FILE=/home/yasdb/cert/clientcert.pem
    TLCP_CLIENT_KEY_FILE=/home/yasdb/cert/clientkey.pem
    TLCP_CLIENT_KEY_PASS = 1234
    

    其中,配置中的路径可指定为绝对或相对路径,但不能为含有../的相对路径,且系统按前255字节长度进行文件读取。

# 主备复制网络可信信道

主备复制网络可信信道支持如下方式:

  • 直接采用数据库客户端<->服务器监听:配置操作请查阅客户端<->服务器SSL可信信道

  • 主备节点自身监听:需在每台数据库服务器上存放正确的且在有效期内的服务器证书文件,并完成相应配置,具体配置方式详见下文。

# 前提条件

  • 已生成SSL协议相关证书

  • 已在每台数据库服务器上规划并创建证书文件的存放路径,每个文件的路径需一致,YashanDB的安装用户(即yashan)需具备对应路径的全部权限,本文以统一存放在/data/yashan/ssl路径为例。

    $ cd /data/yashan
    $ mkdir ssl
    
  • 配置可信信道需重启数据库。

# 操作步骤

  1. 使用Linux命令复制服务端所需证书文件至每台数据库服务器的指定路径。

  2. 以DBA用户连接并登录数据库。

    $ yasql sales/********@192.168.1.2:1688
    YashanDB SQL Enterprise Edition Release {version_number} x86_64
    
    Connected to:
    YashanDB Server Enterprise Edition Release {version_number} x86_64 - Linux
    
    SQL> 
    
  3. 开启主备复制网络可信信道开关,配置服务器各类证书路径。

    ALTER SYSTEM SET HA_SSL_ENABLE = ON SCOPE=spfile;
    ALTER SYSTEM SET SSL_CERT_FILE = /data/yashan/ssl/server.crt SCOPE=spfile;
    ALTER SYSTEM SET SSL_DH_PARAM_FILE = /data/yashan/ssl/dhparam.pem SCOPE=spfile;
    ALTER SYSTEM SET SSL_KEY_FILE = /data/yashan/ssl/server.key SCOPE=spfile;
    
  4. 重启数据库使配置生效。

# DIN可信信道

为简化操作,本文以服务器为单位管理服务器私钥和证书,即同一服务器上运行的所有分布式节点共用同一份服务器证书为例。

实际使用时,可根据对证书管理便捷性和安全性的需求,对配置流程和方式进行调整,例如可以按节点为单位管理证书,也可以仅共用1份根证书为不同节点组生成不同的服务器证书等。

# 前提条件

  • 已生成SSL协议相关证书

  • 已在每台数据库服务器上规划并创建证书文件的存放路径,每个文件的路径需一致,YashanDB的安装用户(即yashan)需具备对应路径的全部权限,本文以统一存放在/data/yashan/ssl路径为例。

    $ cd /data/yashan
    $ mkdir ssl
    
  • 配置可信信道需重启数据库。

# 操作步骤

  1. 使用Linux命令复制服务端所需证书文件至每台数据库服务器的指定路径。

  2. 以DBA用户连接并登录数据库。

    $ yasql sales/********@192.168.1.2:1688
    YashanDB SQL Enterprise Edition Release {version_number} x86_64
    
    Connected to:
    YashanDB Server Enterprise Edition Release {version_number} x86_64 - Linux
    
    SQL> 
    
  3. 开启主备复制网络可信信道开关,配置服务器各类证书路径。

    ALTER SYSTEM SET DIN_SSL_ENABLE = ON SCOPE=spfile;
    ALTER SYSTEM SET SSL_CERT_FILE = /data/yashan/ssl/server.crt SCOPE=spfile;
    ALTER SYSTEM SET SSL_DH_PARAM_FILE = /data/yashan/ssl/dhparam.pem SCOPE=spfile;
    ALTER SYSTEM SET SSL_KEY_FILE = /data/yashan/ssl/server.key SCOPE=spfile;
    
  4. 重启数据库使配置生效。

edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流