如何获取叶子证书私钥?Vault根CA下的mTLS应用场景
解决Vault生成内部证书后获取私钥的问题
先确认证书生成逻辑
当你通过Vault CA签发内部证书时,只有在Vault为证书生成新密钥对的场景下,才会返回私钥。如果签发时指定了外部公钥(用-key参数),Vault不会生成私钥,自然无法获取。
签发证书时直接获取私钥
使用标准签发命令,响应里会包含private_key字段:
vault write pki/issue/<你的角色名> common_name="internal.example.com"
如果需要导出到文件,可加格式化参数:
vault write -format=json pki/issue/<你的角色名> common_name="internal.example.com" | jq -r '.data.private_key' > internal-key.pem
事后获取已签发证书的私钥
Vault默认不存储证书私钥,除非签发时开启store_key=true:
vault write pki/issue/<你的角色名> common_name="internal.example.com" store_key=true
之后通过证书序列号查询私钥:
- 先列出所有证书序列号:
vault list pki/certs - 用序列号读取私钥:
vault read pki/cert/<证书序列号>/private_key
排查角色配置限制
如果还是拿不到私钥,检查角色是否禁用了私钥导出:
vault write pki/roles/<你的角色名> allow_private_key_export=true
内容的提问来源于stack exchange,提问作者esto
相关产品推荐
相关产品推荐

