我正在尝试使用以下方法将现有的椭圆曲线中间CA证书添加到保险柜中
vault write pki/config/ca pem_bundle=@bundle.json
bundle.json包含
{
"pem_bundle":"-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----\n-----BEGIN EC PRIVATE KEY-----\...\n-----END EC PRIVATE KEY-----"
}
这给出了错误“在PEM块中找不到数据”-我相信这是因为它期望使用RSA证书。 看着https://www.vaultproject.io/api-docs/secret/pki
有一个key_type
参数可以设置为EC。但这似乎不适用于pki/config/ca
答案 0 :(得分:1)
submit a CA的API文档特别注意以下几点:
请注意,如果您通过HTTP API提供数据,则必须 JSON格式,用\ n替换换行符,就像这样...
这仅适用于HTTP API(例如:curl ... https://.../v1/pki/config/ca
)。
但是,您正在使用vault write
CLI命令,该命令为您完成了从输入到json格式的转换。 CLI命令的pem_bundle
参数应该是包含普通PEM格式的证书和密钥的普通.pem
文件的路径。例如:
-----BEGIN CERTIFICATE-----
...
...
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
...
...
-----END EC PRIVATE KEY-----
您的最终调用将是:
vault write pki/config/ca pem_bundle=@ca_bundle.pem
还请注意,key_type
参数仅在保险柜正在生成密钥时才需要。由于您提供了密钥,因此保管箱将正确检测密钥类型(请参见certutil.ParsePemBundle)。