Добавление промежуточной эллиптической кривой в хранилище

#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)