更新时间:2024-07-08 14:13:41

使用场景

证书替换工具是将原来需要手动替换的证书使用工具一次性导入,来避免手动替换操作失误造成系统通信出现问题。证书的公钥和私钥用来对通信数据进行加密和解密,以实现安全的通信。

证书分为客户端、服务端类型证书。客户端证书是实现客户端和服务端安全通信的证书。服务端证书包含服务证书和Web证书,其中服务证书是实现服务端集群间安全通信的证书,Web证书是用来确保浏览器访问控制台安全通信的证书。

以下场景可使用该工具进行证书的替换和证书私钥文件的加密:

  • 证书即将过期或证书已过期。

  • 使用自有的证书替换原证书。

  • 未加密私钥替换后加密存储。

注意事项

  • 客户端client证书文件需要与服务端client证书文件一致才可以相互通信。
  • 集群环境需要集群每个节点均替换证书才可以实现集群间通信。
  • 服务端替换证书前需要暂停所有服务(暂停服务前需要停止正在运行的任务和计划策略),证书替换成功后需启动所有服务。
  • 替换工具会识别证书签发日期,若证书签发日期在当前日期之后则提示无法导入。
  • 替换工具所导入的证书必须由CA签发,否则导入时会报错提示证书非CA机构签发。
  • 替换工具导入证书公钥文件扩展名必须为.pem,否则导入时报错提示没有检测到公钥文件。
  • 导入时若私钥存在加密,则需要先验证私钥加密密码后才能导入。
  • 替换工具在Unix系统客户端中,输入密码后点击Enter,此现象不会影响正常使用,继续操作即可。
  • 替换服务端证书时,需确认server.pem的颁发者和使用者信息不完全一致,否则导入后系统部分服务会报错。
  • 软件仅支持使用加密口令加密过的证书,若直接替换没有加密口令的证书,重启服务后软件服务会异常,建议使用证书替换工具进行导入时设置加密口令。
  • 软件不支持签发者和使用者信息完全一致的证书,导入该证书会导致软件服务异常,请导入前确认server.pem和client.pem证书的签发者和使用者信息不完全一致。
  • 证书替换工具仅支持自签证书替换,暂不支持多级证书替换。在导入前请确认ca.pem为自签根证书,不是多级中间证书,否则导入会报错“the client.pem is not ca sign”。
  • 在控制台证书替换之后,发起推送安装客户端,客户端证书不匹配无法上线。仍须手动在客户端机器上执行证书替换操作,使客户端证书与控制台证书保持一致。

使用方法

替换客户端证书

  1. 将新证书放入指定路径下(如**/Software/CA**),SSH登录客户端后台。

    例如,将ca.pem(该文件不要求必须导入)、client.key、client.pem文件放入**/Software/CA**目录下。

  2. 进入工具所在目录**/安装目录/AnyBackupClient/ClientService**。

    cd /安装目录/AnyBackupClient/ClientService

  3. 停止客户端服务。

    执行./client_cli runner stop all停止所有Agent进程。

  4. 查看工具使用方式。

    ./client_cli certtool --help

    image31.png

  5. 配置证书替换工具参数。

    例如,导入路径**/Software/CA**下的证书且替换ca.pem证书:

    Linux:./client_cli certtool --updateca=yes --path=/Software/CA

    image32.png

    Windows:client_cli.bat certtool --updateca=yes --path=/Software/CA

    image33.png

    参数说明:

    • --updateca:填写yes或no来选择是否导入ca.pem文件,若填写yes则目录下必须存在ca.pem文件。
    • --path:填写新证书的路径。
  6. 提示输入密码。密码需符合以下规则:至少16个至多32个字符,至少包含一个数字、一个大写字母、一个小写字母、一个特殊字符,不能包括有空格和退出字符。

  7. 确认导入结果。

    证书替换完成后,进入安装目录AnyBackupClient/CA文件夹下,确认ca.pem(可选)、client.key、client.pem、xor.key文件存在,其中xor.key为导入后生成的私钥加密口令文件。

  8. 启动客户端进程。

    Linux&Unix:执行./client_cli runner start all,启动所有Agent进程

    Windows:执行client_cli.bat runner start all,启动所有Agent进程

替换服务端证书

  1. 将新证书放入指定路径下,如**/Software/CA**,SSH登录服务端后台。

    说明:Software是指将AnyBackupServer安装到Software文件目录下,下同。

    例如,导入server证书,将ca.pem(该文件不要求必须导入,若包含该文件则默认导入,否则不导入该文件)、client.key、client.pem、server.key、server.pem文件放入**/Software/CA路径下;导入web证书,将ca.pem(该文件不要求必须导入,若包含该文件则默认导入,否则不导入该文件)、dhparam.pem、server.key、server.pem文件放入/Software/CA**路径下。

  2. 进入工具所在目录**/AnyBackupServer/script**。

    cd /安装目录/AnyBackupServer/script/

  3. 登录管理控制台,停止所有任务及策略。

  4. 确认所有任务和策略停止后暂停所有服务,集群下先停止业务节点,随后停止从节点管理节点,最后停止主节点。

    例如,进入script文件夹下执行命令:./restart_all_Service.sh stop

    执行systemctl -a | grep AB查看所有服务是否为停止状态。

    若EtcdService、KADService、ClusterMgmService和ClusterService没有停止,先执行命令systemctl stop ABEtcdServicesystemctl stop ABKADServicesystemctl stop ABClusterMgmService,再执行systemctl stop ABClusterService来停止这四个服务。单节点安装没有KAD服务,只需停止EtcdService、ClusterMgmService和ClusterService即可。

    若有其他服务没有停止,则需使用命令systemctl stop <服务名>手动停止该服务。

  5. 查看工具使用方式。

    ./certtool.sh –help

    image34.png

  6. 配置证书替换工具参数。

    例如,导入路径**/Software/CA**下的服务证书,执行命令:

    ./certtool.sh --import=server --path=/Software/CA

    导入路径/Software/CA下的web证书,执行命令:

    ./certtool.sh --import=web --path=/Software/CA

    参数说明:

    • --import:填写server或web来选择导入server证书或web证书。

    • --path:填写新证书的路径,若路径下存在ca.pem则默认导入。

  7. 提示输入密码。密码需符合以下规则:至少16个至多30个字符,至少包含一个数字、一个大写字母、一个小写字母、一个特殊字符,不能包括有空格和退出字符。

  8. 启动所有服务。

    执行成功后,在所有节点使用systemctl start ABSvrMgmService启动所有服务。所有节点可以同时操作。

    使用systemctl -a | grep AB检查是否所有服务均启动。若有个别服务仍未启动,可使用命令systemctl start <服务名>手动启动该服务。

  9. 确认导入结果。

    若导入server证书,进入**/Software/AnyBackupServer/CA**文件夹下,确认ca.pem、client.key、client.pem、server.key、server.pem、xor.key文件存在,其中xor.key为导入后生成的私钥加密口令文件。

    若导入web证书:进入**/Software/AnyBackupServer/CA/proxy**文件夹下,确认ca.pem、dhparam.pem、server.key、server.pem文件,proxy.key为导入后生成的私钥加密口令文件。

客户端证书检测线程

当证书剩余过期天数达到预警值时,在控制台的监控-事件中可以看到证书即将过期的警告信息。此时,可通过修改certification_warning.config文件,配置客户端证书过期时间和告警周期。

注意事项

若客户端进程关闭,检测线程则一同关闭。

操作步骤

  1. 访问客户端安装目录。

  2. 访问证书检测线程配置文件目录。

    例如,Linux下执行命令:cd /安装目录/AnyBckupClient/etc/ClientService/BasicRunner/CA

  3. 修改配置文件certification_warning.config

    Linux下执行 vi certification_warning.config

    image35.png

    Windows下使用记事本打开并编辑certification_warning.config文件。

    image36.png

    参数说明:

    • detect_cycle参数用来配置检测周期,有效配置范围为大于等于1的整数,单位为天,默认配置为7天。

    • warning_time参数用来配置证书剩余过期时间的告警阈值,有效配置范围为大于等于1的整数,单位为天,默认配置为90天。

    注意:detect_cycle或warning_time参数配置错误时,日志给出错误配置提示并使用默认配置。

  4. 查看以下日志文件,确认配置生效。

    Windows查看C:\ProgramData\AnyBackup\logs\BasicRunner\Manager\manager.log

    Linux查看/var/log/AnyBackup/ABClientService/BasicRunner/Manager/manager.log

    image37.png

    日志记录修改配置文件信息

    image38.png

    日志记录上报告警信息

    image39.png

    服务端事件提示警告