证书过期替换

说明

hubble集群在一定时期内需要进行证书的替换,以保证不影响后续的正常使用,允许您轮换安全证书而无需重新启动节点。

何时轮换证书

在以下情况下,您可能需要轮换节点,客户端或CA证书:

  • 节点,客户端或CA证书即将到期。
  • 您组织的合规性政策要求定期进行证书轮换。
  • 密钥已被泄露(对于节点,客户端或CA)。
  • 您需要修改证书的内容,例如,添加另一个DNS名称或负载均衡器的IP地址,通过该IP地址可以访问节点。在这种情况下,您只需要轮换节点证书。

操作步骤

查看证书信息

  • 查看证书时效性,使用cert list语句(使用root用户)
/usr/local/bin/hubble cert list --certs-dir=/var/lib/hubble/certs

图1
图1

备份证书文件

  • 进入对应证书目录,进行备份(使用root用户)
cd /var/lib/hubble
cp -r certs/ certs_bak
cp -r mysafedirectory/ mysafedirectory_bak

关闭服务

  • 关闭服务命令(使用hubble用户)
systemctl stop hubble

针对所有需要换证书的节点,都要关闭服务

数据库license注册激活

本步骤通过root用户操作

生成license机器码

  • 选取任意一个节点,使用license machinecode语句
cd /var/lib/hubble
/usr/local/bin/hubble  license  machinecode --certs-dir=/var/lib/hubble/certs 

执行后会在/var/lib/hubble/certs下生成BDPMACHINE.txt文件

license注册激活

  • 将/var/lib/hubble/certs/BDPMACHINE.txt文件机器码发送到公司申请license激活码
  • 将license激活码写入到/var/lib/hubble/certs/BDPLIC.txt文件(必须保证BDPLIC.txt文件正确命名)
  • 执行license注册激活,使用license register语句
/usr/local/bin/hubble license register     --certs-dir=/var/lib/hubble/certs

图2
图2

证书更新

  • 在第一台服务器生成证书,使用cert create-ca语句(使用hubble用户)
cd /var/lib/hubble/
hubble cert create-ca --certs-dir=certs --ca-key=mysafedirectory/ca.key    #生成本机证书和密钥 
  • 生成其他服务器证书,使用cert create-node语句(使用hubble用户)
cd /var/lib/hubble/
hubble cert create-node hubble02 192.168.1.12 --certs-dir=certs --ca-key=mysafedirectory/ca.key --overwrite
  • 分发至其他节点(使用hubble用户)
scp -r certs/ hubble@hubble02:/var/lib/hubble/

create-node hubble02 192.168.1.12 创建其他节点的证书
基于ca.key生成其他节点证书
scp分发到对应的节点上

  • 生成本机服务器证书,使用cert create-node语句(使用hubble用户)
cd /var/lib/hubble/
hubble cert create-node hubble01 192.168.1.11 --certs-dir=certs --ca-key=mysafedirectory/ca.key --overwrite
  • 生成数据库客户端用户证书与密钥,使用cert create-client语句(使用hubble用户)
cd /var/lib/hubble/
hubble cert create-client root --certs-dir=certs --ca-key=mysafedirectory/ca.key --overwrite  #root的,也可以生成其他用户的

如果在执行create-client客户端授权时,有的license申请期限时常较少,会出现"Error: failed to generate client certificate and key: xxx key: CA lifetime is 2364.193159h, shorter than the requested 43920.000000h. Renew CA certificate, or rerun with --lifetime=2364h for a shorter duration" 需要后面添加--lifetime=2364h参数,执行命令hubble cert create-client root --certs-dir=certs --ca-key=mysafedirectory/ca.key --overwrite --lifetime=2364h

所有用到的节点都需要执行一次

  • 再一次查看证书信息(root用户)
/usr/local/bin/hubble cert list --certs-dir=/var/lib/hubble/certs

说明:查看失效日期的变化

重启服务

  • 启动服务(使用hubble用户)
systemctl start  hubble

所有用到的节点都重启

连接测试

  • 连接数据库
hubble sql --certs-dir=/var/lib/hubble/certs --host=hubble01:15432
  • 查询数据,进行测试
show databases