使用场景
证书替换工具是将原来需要手动替换的证书使用工具一次性导入,来避免手动替换操作失误造成系统通信出现问题。证书的公钥和私钥用来对通信数据进行加密和解密,以实现安全的通信。
证书分为客户端、服务端类型证书。客户端证书是实现客户端和服务端安全通信的证书。服务端证书包含服务证书和Web证书,其中服务证书是实现服务端集群间安全通信的证书,Web证书是用来确保浏览器访问控制台安全通信的证书。
以下场景可使用该工具进行证书的替换和证书私钥文件的加密:
-
证书即将过期或证书已过期。
-
使用自有的证书替换原证书。
-
未加密私钥替换后加密存储。
注意事项
- 客户端client证书文件需要与服务端client证书文件一致才可以相互通信。
- 集群环境需要集群每个节点均替换证书才可以实现集群间通信。
- 服务端替换证书前需要暂停所有服务(暂停服务前需要停止正在运行的任务和计划策略),证书替换成功后需启动所有服务。
- 替换工具会识别证书签发日期,若证书签发日期在当前日期之后则提示无法导入。
- 替换工具所导入的证书必须由CA签发,否则导入时会报错提示证书非CA机构签发。
- 替换工具导入证书公钥文件扩展名必须为.pem,否则导入时报错提示没有检测到公钥文件。
- 导入时若私钥存在加密,则需要先验证私钥加密密码后才能导入。
- 替换工具在Unix系统客户端中,输入密码后点击Enter,此现象不会影响正常使用,继续操作即可。
- 替换服务端证书时,需确认server.pem的颁发者和使用者信息不完全一致,否则导入后系统部分服务会报错。
- 软件仅支持使用加密口令加密过的证书,若直接替换没有加密口令的证书,重启服务后软件服务会异常,建议使用证书替换工具进行导入时设置加密口令。
- 软件不支持签发者和使用者信息完全一致的证书,导入该证书会导致软件服务异常,请导入前确认server.pem和client.pem证书的签发者和使用者信息不完全一致。
- 证书替换工具仅支持自签证书替换,暂不支持多级证书替换。在导入前请确认ca.pem为自签根证书,不是多级中间证书,否则导入会报错“the client.pem is not ca sign”。
- 在控制台证书替换之后,发起推送安装客户端,客户端证书不匹配无法上线。仍须手动在客户端机器上执行证书替换操作,使客户端证书与控制台证书保持一致。
使用方法
替换客户端证书
-
将新证书放入指定路径下(如**/Software/CA**),SSH登录客户端后台。
例如,将ca.pem(该文件不要求必须导入)、client.key、client.pem文件放入**/Software/CA**目录下。
-
进入工具所在目录**/安装目录/AnyBackupClient/ClientService**。
cd /安装目录/AnyBackupClient/ClientService
-
停止客户端服务。
执行
./client_cli runner stop all
停止所有Agent进程。 -
查看工具使用方式。
./client_cli certtool --help
-
配置证书替换工具参数。
例如,导入路径**/Software/CA**下的证书且替换ca.pem证书:
Linux:
./client_cli certtool --updateca=yes --path=/Software/CA
Windows:
client_cli.bat certtool --updateca=yes --path=/Software/CA
参数说明:
- --updateca:填写yes或no来选择是否导入ca.pem文件,若填写yes则目录下必须存在ca.pem文件。
- --path:填写新证书的路径。
-
提示输入密码。密码需符合以下规则:至少16个至多32个字符,至少包含一个数字、一个大写字母、一个小写字母、一个特殊字符,不能包括有空格和退出字符。
-
确认导入结果。
证书替换完成后,进入安装目录AnyBackupClient/CA文件夹下,确认ca.pem(可选)、client.key、client.pem、xor.key文件存在,其中xor.key为导入后生成的私钥加密口令文件。
-
启动客户端进程。
Linux&Unix:执行
./client_cli runner start all
,启动所有Agent进程Windows:执行
client_cli.bat runner start all
,启动所有Agent进程
替换服务端证书
-
将新证书放入指定路径下,如**/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**路径下。
-
进入工具所在目录**/AnyBackupServer/script**。
cd /安装目录/AnyBackupServer/script/
-
登录管理控制台,停止所有任务及策略。
-
确认所有任务和策略停止后暂停所有服务,集群下先停止业务节点,随后停止从节点管理节点,最后停止主节点。
例如,进入script文件夹下执行命令:
./restart_all_Service.sh stop
执行
systemctl -a | grep AB
查看所有服务是否为停止状态。若EtcdService、KADService、ClusterMgmService和ClusterService没有停止,先执行命令
systemctl stop ABEtcdService
、systemctl stop ABKADService
、systemctl stop ABClusterMgmService
,再执行systemctl stop ABClusterService
来停止这四个服务。单节点安装没有KAD服务,只需停止EtcdService、ClusterMgmService和ClusterService即可。若有其他服务没有停止,则需使用命令
systemctl stop <服务名>
手动停止该服务。 -
查看工具使用方式。
./certtool.sh –help
-
配置证书替换工具参数。
例如,导入路径**/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则默认导入。
-
-
提示输入密码。密码需符合以下规则:至少16个至多30个字符,至少包含一个数字、一个大写字母、一个小写字母、一个特殊字符,不能包括有空格和退出字符。
-
启动所有服务。
执行成功后,在所有节点使用
systemctl start ABSvrMgmService
启动所有服务。所有节点可以同时操作。使用
systemctl -a | grep AB
检查是否所有服务均启动。若有个别服务仍未启动,可使用命令systemctl start <服务名>
手动启动该服务。 -
确认导入结果。
若导入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文件,配置客户端证书过期时间和告警周期。
注意事项
若客户端进程关闭,检测线程则一同关闭。
操作步骤
-
访问客户端安装目录。
-
访问证书检测线程配置文件目录。
例如,Linux下执行命令:
cd /安装目录/AnyBckupClient/etc/ClientService/BasicRunner/CA
-
修改配置文件certification_warning.config。
Linux下执行
vi certification_warning.config
。Windows下使用记事本打开并编辑certification_warning.config文件。
参数说明:
-
detect_cycle参数用来配置检测周期,有效配置范围为大于等于1的整数,单位为天,默认配置为7天。
-
warning_time参数用来配置证书剩余过期时间的告警阈值,有效配置范围为大于等于1的整数,单位为天,默认配置为90天。
注意:detect_cycle或warning_time参数配置错误时,日志给出错误配置提示并使用默认配置。
-
-
查看以下日志文件,确认配置生效。
Windows查看C:\ProgramData\AnyBackup\logs\BasicRunner\Manager\manager.log
Linux查看/var/log/AnyBackup/ABClientService/BasicRunner/Manager/manager.log
日志记录修改配置文件信息
日志记录上报告警信息
服务端事件提示警告