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