#hashicorp-vault
#hashicorp-хранилище
Вопрос:
Я пытаюсь добавить существующий сертификат CA elliptic curve intermediate в хранилище, используя следующее
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
Ответ №1:
В документах API для отправки CA особо отмечается следующее:
Обратите внимание, что если вы предоставляете данные через HTTP API, они должны быть в формате JSON, с заменой новых строк на n, вот так…
Это относится только к HTTP API (например: curl ... https://.../v1/pki/config/ca
).
Однако вы используете vault write
команду CLI, которая выполняет перевод из входных данных в формат json для вас. pem_bundle
Аргументом команды CLI должен быть путь к простому .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
аргумент необходим только тогда, когда Vault генерирует ключ. Поскольку вы предоставляете ключ, Vault правильно определит тип ключа (см. certutil.ParsePemBundle).
Комментарии:
1. это сработало, спасибо. Хотя, возможно, у меня было что-то не так с форматированием и т.д., Поскольку мне нужно было запустить закрытый ключ через openssl, прежде чем он его примет. (использование -outform pem)