---
title: 一键更新HAF密钥
description: "当前密钥更新主要有两种方式："
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2200/accel/kunpengaccel_haf_06_0082.html
sourcePath: /source/zh/kunpengboostkithistory/2200/accel/kunpengaccel_haf_06_0082.html
indexId: b392136ccff374cb537a8340532b3b3720c15b39d777754ba3be4d88f5e65dbd74
---
# 一键更新HAF密钥

当前密钥更新主要有两种方式：

- 通过重启进程的形式进行更新，进程会根据密钥有效期判断是否需要进行更新，更新过程完全自动化，用户可以不用进行任何操作。
- 通过命令行工具强制更新密钥，重启业务进程，使密钥生效。

- 在重启时，检测密钥是否还有30天就会过期，如果密钥到期，HAF进程就会进行密钥更新过程。密钥过期不会影响正常业务，更新只需重启业务进程即可。
- 通过命令行工具时，无论密钥是否即将到期，都会更新密钥，并重置密钥的生效时间。


#### 重启节点完成更新密钥

| 参数 | 内容 |
| --- | --- |
| 任务名称 | 一键更新密钥 |
| 任务描述 | 重新生成当前节点密钥 |
| 运行目录 | / |
| 执行命令 | 卸载节点服务化安装： 重启haf\-tool工具以及对应服务。 /home/omm/haf\-install/haf\-target/tools/haf\-tool restart && haf\-tool service \-\-restart 主机节点及卸载节点库安装： 用户重启主进程（类似将Hetu进程重启等），完成密钥是否需要更新的检测及操作。 |
| 是否预判返回码 | 是 |
| 期望返回码 | 0 |


#### 手动更新密钥

手动更新密钥，进入工具安装目录，执行如下更新密钥的命令。业务节点的密钥更新操作将密钥放置在安装目录的cert路径下。

./tools/haf-tool keystore --update
**表1 通过SmartKit更新生成服务端或客户端节点的证书**

| 参数 | 内容 |
| --- | --- |
| 任务名称 | 手动更新密钥 |
| 任务描述 | 强制更新主密钥和工作密钥 |
| 运行目录 | / |
| 执行命令 | /home/omm/haf\-install/haf\-target/tools/haf\-tool keystore \-\-update |
| 是否预判返回码 | 是 |
| 期望返回码 | 0 |


此处以卸载节点服务化安装为例，主机节点和卸载节点库安装可参考卸载节点服务化安装执行。


密钥更新命令使用kmc_tool_bin工具，该工具在安装目录下的“bin”路径下，由haf-tool工具调用，内部调用的命令为：

LD_LIBRARY_PATH=<haf_dir>/lib/ <haf_dir>/bin/kmc_tool_bin --ksfa <service_ksfa_path> --ksfb <service_ksfb_path> --service_pass <service_pass_path> --output_passwd_file <ip_white_list>


**表2 命令参数说明**

| 选项 | 内容 | 必选 |
| --- | --- | --- |
| \-\-ksfa <service\_ksfa\_path> | KMC主密钥文件存放路径，haf\-tool工具调用密钥更新命令时指定的参数<cert\_path>/service.ksfa。 | √ |
| \-\-ksfb <service\_ksfb\_path> | KMC备份密钥文件存放路径，haf\-tool工具调用密钥更新命令时指定的参数<cert\_path>/service.ksfb。 | √ |
| \-\-service\_pass <service\_pass\_path> | 经加密后的口令文件存放路径，haf\-tool工具调用密钥更新命令时指定的参数<cert\_path>/service.pw。 | √ |
| \-\-output\_passwd\_file <ip\_white\_list> | 经过加密后的白名单文件存放路径，haf\-tool工具调用密钥更新命令时指定的参数<cert\_path>/ip\_white\_list。 | × |


- haf_dir表示HAF安装之后的目录。
- 调用kmc_tool_bin时，通过LD_LIBRARY_PATH指定需要依赖动态库的路径。
- --output_passwd_file <ip_white_list>参数仅在卸载节点使用，并且需之前已配置过白名单。
- kmc_tool_bin为软件内部工具，不建议用户单独调用。
