将椭圆曲线中间添加到 Vault

Adding elliptic curve intermediate to Vault

我正在尝试使用以下方法将现有的椭圆曲线中间 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-----"
}

这给出了错误 'no data found in PEM block' - 我认为这是因为它需要一个 RSA 证书。 看着https://www.vaultproject.io/api-docs/secret/pki

有一个 key_type 参数可以设置为 EC。但这似乎不适用于 pki/config/ca

API 到 submit a CA 的文档特别注意以下内容:

Note that if you provide the data through the HTTP API it must be JSON-formatted, with newlines replaced with \n, like so...

这仅适用于 HTTP API(例如:curl ... https://.../v1/pki/config/ca)。

但是,您正在使用 vault write CLI 命令,该命令会为您将输入转换为 json 格式。 CLI 命令的 pem_bundle 参数应该是包含普通 PEM-formatted 证书和密钥的普通 .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)。