rekey
admin rekey命令生成一组新的授权密钥分片(Unseal Key),支持重新设定密钥分片的数量(key-shares)和管理门限(key-threshold)。执行此命令要求 CA 处于 Authorized 状态,且需要提供满足门限数量的已有密钥分片。此命令执行过程中 CA 服务不中断。
命令用法
以下是admin rekey命令的参数列表
命令参数
--key-shares(int)- 设置新的密钥分片数量,最小 2 片,最大 5 片。仅第一位执行命令的管理员需要此参数,需与--key-threshold参数同时使用
--key-threshold(int)- 设置新的恢复根密钥所需的分片数量,最小为 2,最大不能超过key-shares。仅第一位执行命令的管理员需要此参数
--nonce(string)- rekey 任务唯一标识,仅非首位执行admin rekey命令的管理员需要此参数。此参数值由第一位执行命令的管理员提供
--input- 输入当前已有的密钥分片,需要与nonce参数同时使用
--cancel- 取消 rekey 任务,需要与nonce参数同时使用
--backup- 备份新的密钥分片,需要与nonce参数同时使用
--verify- 验证备份的新密钥分片的正确性,需要与nonce参数同时使用
--status- 查看 rekey 命令执行状态
示例
假设已处于管理中的 CA 服务有 Admin1, Admin2, Admin3 三名管理员,且管理门限为 2 为例,讲解如何使用admin rekey命令重新生成 unseal key,密钥分片数量及门限保持不变。
1、Admin1 执行以下命令,指定新的密钥分片数量及门限,启动 rekey 任务,并根据提示输入自己之前备份的密钥分片:
$ cacli admin rekey --key-shares=3 --key-threshold=2
Please input your **CURRENT** unseal key(Input will be hidden, and type Enter to confirm input. The nonce of the current operation is '3eaf93f5-d86a-4ad1-8118-5f6fff6254c3'): <Admin1 input his/her CURRENT unseal key and enter>
Seal Type: Shamir
CA Rekey Operation Nonce: 3eaf93f5-d86a-4ad1-8118-5f6fff6254c3
Total Shares: 3
Threshold: 2
Modified Total Shares: 3
Modified Threshold: 2
-> Input Progress: 1/2
Input Validation Success: unfinished
Backup Progress: 0/3
Backup Finished: false
Verify Progress: 0/3
Verify Success: unfinished输出说明如下:
Seal Type: Shamir- 密钥分片算法,当前固定为 Shamir
CA Rekey Operation Nonce: 3eaf93f5-d86a-4ad1-8118-5f6fff6254c3- 本次 rekey 任务的唯一标识,发送给 Admin2 和 Admin3,禁止发送给其他人
Total Shares: 3- 当前密钥分片数量
Threshold: 2- 当前恢复根密钥所需的分片门限数量
Modified Total Shares: 3- rekey 之后的密钥分片数量
Modified Threshold: 2- rekey 之后恢复根密钥所需的分片门限数量
->Input Progress: x/y- 提供已有密钥分片的进度,x 代表当前已经提供的密钥分片数量,y 代表需要提供的总密钥分片数量
Input Validation Success: unfinished- 提供的密钥分片是否验证成功,当所有提供的密钥分片验证通过后,为 true
Backup Progress: x/y- 新密钥分片的备份进度,x 代表已经备份分片数量,y 是分片总数量
Backup Finished: false- 新密钥分片是否备份完成,当所有新的密钥分片备份完成后,为 true
Verify Progress: x/y- 新密钥分片的验证进度,x 代表已经输入的分片数量,y 是分片总数量
Verify S uccess: unfinished- 新密钥分片验证是否完成,当所有备份的新密钥分片验证通过后,为 true
2、Admin2 执行以下命令,并根据提示输入自己之前备份的密钥分片,其中nonce值请向 Admin1 索要
$ cacli admin rekey --nonce=3eaf93f5-d86a-4ad1-8118-5f6fff6254c3 --input
Please input your **CURRENT** unseal key(Input will be hidden, and type Enter to confirm input. The nonce of the current operation is '3eaf93f5-d86a-4ad1-8118-5f6fff6254c3'): <Admin2 input his/her CURRENT unseal key and enter>
Seal Type: Shamir
CA Rekey Operation Nonce: 3eaf93f5-d86a-4ad1-8118-5f6fff6254c3
Total Shares: 3
Threshold: 2
Modified Total Shares: 3
Modified Threshold: 2
-> Input Progress: 2/2
Input Validation Success: true
Backup Progress: 0/3
Backup Finished: false
Verify Progress: 0/3
Verify Success: unfinished
当Input Validation Success为true时,表明 Admin1,Admin2 均已完输入之前备份的密钥分片且正确无误,CA 已经根据新设置的密钥分片数量和门限生成了一组新的但尚未生效的 Unseal Key,当所有 CA 管理员按以下说明完成 backup 和 verify 操作后, 新的 Unseal Key 生效。
3、Admin1 执行以下命令,获取一片新的授权密钥分片并妥善备份,其中nonce值与 1 至 2 步骤中一致
$ cacli admin rekey --nonce=3eaf93f5-d86a-4ad1-8118-5f6fff6254c3 --backup
Seal Type: Shamir
CA Rekey Operation Nonce: 3eaf93f5-d86a-4ad1-8118-5f6fff6254c3
Total Shares: 3
Threshold: 2
Modified Total Shares: 3
Modified Threshold: 2
Input Progress: 2/2
Input Validation Success: true
-> Backup Progress: 1/3
Backup Finished: false
Verify Progress: 0/3
Verify Success: unfinished
Unseal Key: uk1.kwQ/YY5BPJruMxfydBMAUVRX3fjTnU/hLGIQ7H+Pwg4=
...
4、Admin2 执行以下命令,获取一片新的授权密钥分片并妥善备份,其中nonce值与 1 至 2 步骤中一致
$ cacli admin rekey --nonce=3eaf93f5-d86a-4ad1-8118-5f6fff6254c3 --backup
Seal Type: Shamir
CA Rekey Operation Nonce: 3eaf93f5-d86a-4ad1-8118-5f6fff6254c3
Total Shares: 3
Threshold: 2
Modified Total Shares: 3
Modified Threshold: 2
Input Progress: 2/2
Input Validation Success: true
-> Backup Progress: 2/3
Backup Finished: false
Verify Progress: 0/3
Verify Success: unfinished
Unseal Key: uk2.BCdFsO00XBRlaTJerFJN8uGRnUUIHlCsyIFl5ySCELg=
...
5、Admin3 执行以下命令,获取最后一片新的授权密钥分片并妥善备份,其中nonce值与 1 至 2 步骤中一致
$ cacli admin rekey --nonce=3eaf93f5-d86a-4ad1-8118-5f6fff6254c3 --backup
Seal Type: Shamir
CA Rekey Operation Nonce: 3eaf93f5-d86a-4ad1-8118-5f6fff6254c3
Total Shares: 3
Threshold: 2
Modified Total Shares: 3
Modified Threshold: 2
Input Progress: 2/2
Input Validation Success: true
-> Backup Progress: 3/3
Backup Finished: true
Verify Progress: 0/3
Verify Success: unfinished
Unseal Key: uk3.dUpL/0wne47cn0zK5JGblCuyVz7jtu/9WFqFpMXXhLM=
...
当Backup Finished为true时,表明所有 CA 管理员均各自获取并备份了一片密钥分片,接下来需要进行 verify 操作。
6、Admin1 执行以下命令验证自己备份的新密钥分片,其中 nonce 值与 1 至 5 步骤中一致
$ cacli admin rekey --nonce=3eaf93f5-d86a-4ad1-8118-5f6fff6254c3 --verify
Please input your **NEW** unseal key(Input will be hidden, and type Enter to confirm input. The nonce of the current operation is '3eaf93f5-d86a-4ad1-8118-5f6fff6254c3'): <Admin1 input his/her NEW unseal key and Enter>
Seal Type: Shamir
CA Rekey Operation Nonce: 3eaf93f5-d86a-4ad1-8118-5f6fff6254c3
Total Shares: 3
Threshold: 2
Modified Total Shares: 3
Modified Threshold: 2
Input Progress: 2/2
Input Validation Success: true
Backup Progress: 3/3
Backup Finished: true
-> Verify Progress: 1/3
Verify Success: unfinished
7、Admin2 执行以下命令验证自己备份的新密钥分片,其中 nonce 值与 1 至 5 步骤中一致
$ cacli admin rekey --nonce=3eaf93f5-d86a-4ad1-8118-5f6fff6254c3 --verify
Please input your **NEW** unseal key(Input will be hidden, and type Enter to confirm input. The nonce of the current operation is '3eaf93f5-d86a-4ad1-8118-5f6fff6254c3'): <Admin2 input his/her NEW unseal key and Enter>
Seal Type: Shamir
CA Rekey Operation Nonce: 3eaf93f5-d86a-4ad1-8118-5f6fff6254c3
Total Shares: 3
Threshold: 2
Modified Total Shares: 3
Modified Threshold: 2
Input Progress: 2/2
Input Validation Success: true
Backup Progress: 3/3
Backup Finished: true
-> Verify Progress: 2/3
Verify Success: unfinished
8、Admin3 执行以下命令验证自己备份的新密钥分片,其中 nonce 值与 1 至 5 步骤中一致
$ cacli admin rekey --nonce=3eaf93f5-d86a-4ad1-8118-5f6fff6254c3 --verify
Please input your **NEW** unseal key(Input will be hidden, and type Enter to confirm input. The nonce of the current operation is '3eaf93f5-d86a-4ad1-8118-5f6fff6254c3'): <Admin3 input his/her NEW unseal key and Enter>
Seal Type: Shamir
CA Rekey Operation Nonce: 3eaf93f5-d86a-4ad1-8118-5f6fff6254c3
Total Shares: 3
Threshold: 2
Modified Total Shares: 3
Modified Threshold: 2
Input Progress: 2/2
Input Validation Success: true
Backup Progress: 3/3
Backup Finished: true
-> Verify Progress: 3/3
Verify Success: true
当Verify Success为true时,表明所有 CA 管理员(此示例为 Admin1,Admin2,Admin3 )均已完成 rekey 操作并妥善备份新的 Unseal Key,且已经验证了备份的新的 Unseal Key 正确无误,新的 Unseal Key 生效,旧的 Unseal Key 失效。