我正在尝试使用以下将现有的椭圆曲线中间CA证书添加到Vault
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
提交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
另请注意,只有Vault生成密钥时才需要key_type
参数。由于您提供了密钥,Vault将正确检测密钥类型(请参阅certutil.ParsePemBundle(。