请确保您已:
- 预配了 AWS CloudHSM 集群 ↗。
- 安装了 PKCS#11 的相应软件库 ↗。
导入公钥之前,请从 CA 提供的证书中提取公钥。将私钥内容放入 privkey.pem,然后运行以下命令(将 certificate.pem 替换为您的实际证书)以填充 pubkey.pm。
keyserver$ openssl x509 -pubkey -noout -in certificate.pem > pubkey.pem使用先前创建的 crypto user ↗ (CU) 账户登录 CloudHSM,并生成将用于导入私钥的密钥加密密钥。
keyserver$ /opt/cloudhsm/bin/key_mgmt_util
Command: loginHSM -u CU -s patrick -p donahue
Command: genSymKey -t 31 -s 16 -sess -l import-wrapping-key
...
Symmetric Key Created. Key Handle: 658
...引用上面返回的密钥句柄,导入私钥和公钥,然后退出 HSM:
Command: importPrivateKey -f privkey.pem -l mykey -id 1 -w 658
...
Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS
Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS
Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS
...
Private Key Unwrapped. Key Handle: 658
Command: importPubKey -f pubkey.pem -l mykey -id 1
Cfm3CreatePublicKey returned: 0x00 : HSM Return: SUCCESS
...
Public Key Handle: 941
Command: logoutHSM
Command: exit密钥就绪后,需要修改密钥服务器在启动时将读取的配置文件。将 object=mykey 和 pin-value=username:password 值更改为与您提供的密钥标签和创建的 CU 用户匹配。
打开 /etc/keyless/gokeyless.yaml,在紧接其后的位置:
private_key_stores:
- dir: /etc/keyless/keys添加:
- uri: pkcs11:token=cavium;object=mykey?module-path=/opt/cloudhsm/lib/libcloudhsm_pkcs11_standard.so&pin-value=patrick:donahue&max-sessions=1保存配置文件后,重启 gokeyless 并验证其是否成功启动。
sudo systemctl restart gokeyless.service
sudo systemctl status gokeyless.service -l