Рейтинг:0

Windows не создает назначенный «Контейнер ключей» при добавлении сертификата, привязанного к Cavium (AWS CloudHSMv2)

флаг cn

У меня есть две системы Windows, привязанные к AWS CloudHSM v2 (cavium HSM). На одном я сгенерировал CSR и принял/добавил сертификат, купленный с этим CSR. Я могу подписать, и закрытый ключ правильно извлекается из HSM через контейнер ключей.

Другая подпись - это моя производственная система подписи, и она правильно работает с существующим сертификатом, но когда я пытаюсь добавить новый сертификат, нет Ключевой контейнер настроен. Я привык запускать процесс восстановления, но в этом случае у меня нет идентификатора для предоставления файла.

  1. Аутентификация "\Program Files\Amazon\CloudHSM\tools\set_cloudhsm_credentials.exe" --user УДАЛЕНО --password "..."
  2. Добавьте сертификат certutil -addstore my-new-cert.crt
  3. Скиньте реквизиты магазина certutil -сохранить мой > cert_store_details.txt
    Серийный номер: УДАЛЕНО
    Эмитент: CN=DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1, O=DigiCert, Inc., C=US
     Не раньше: 25 января 2022 г., 00:00
     Непосле: 25.01.2023 23:59
    Тема: CN=УДАЛЕНО, C=США, СЕРИЙНЫЙ НОМЕР=УДАЛЕНО, OID.1.3.6.1.4.1.311.60.2.1.2=Делавэр, OID.1.3.6.1.4.1.311.60.2.1.3=США, OID.2.5. 4.15=Частная организация
    Некорневой сертификат
    Хэш сертификата (sha1): УДАЛЕНО
    Нет информации о поставщике ключей
    Не удается найти сертификат и закрытый ключ для расшифровки.

Обычно я бы создал файл repair.txt с помощью Ключевой контейнер идентификатор между = и & на Контейнер однако у меня нет ни одного из них, так что мне не повезло

        [Характеристики]
        11 = "" ; Добавить свойство понятного имени
        2 = "{текст}" ; Добавить свойство информации о поставщике ключей
        _continue_="Контейнер=&"
        _continue_="Provider=Провайдер хранилища ключей Cavium&"
        _continue_="Флаги=0&"
        _continue_="KeySpec=2"    

Если я просто запущу ремонт certutil -восстановить мой "УДАЛЕНО" затем меня просят смарт-карту. О, и эта машина — Windows Core 2016 (поэтому нет пользовательского интерфейса или ограниченного пользовательского интерфейса).

Рейтинг:0
флаг cn

Хорошо, вот ответ службы поддержки AWS — надеюсь, они добавят его в свои документы.

  1. Определите дескрипторы файлов CloudHSM для закрытого и открытого ключа (вы можете сделать это, сбросив модуль из сертификата и используя инструменты hsm для поиска ключа. Однако я сообщил об дескрипторах до создания CSR и после, чтобы я мог их добавить к моей защищенной документации - так что мне не нужно было этого делать

  2. Создайте KSP-контейнер

C:\Program Files\Amazon\CloudHSM>import_key.exe -из HSM 
  -privateKeyHandle <дескриптор закрытого ключа> -publicKeyHandle <дескриптор открытого ключа>

Это должно вывести что-то похожее на: «Представлена ​​1 пара ключей в Cavium Key Storage Provider».

Если вы получили сообщение об ошибке «n3fips_password не задан», обязательно задайте учетные данные для входа в HSM в вашей системе, как описано в [4] ниже.

  1. Выполните следующую команду, чтобы убедиться, что новый контейнер ключей находится в вашем поставщике хранилища ключей:
C:\Program Files\Amazon\CloudHSM>certutil -key -csp «Поставщик хранилища ключей Cavium»

«Cavius ​​Key Storage Provider» может не совпадать с именем вашего контейнера ключей. Это имя извлекается из выходных данных, созданных на первом шаге.

Если контейнер был успешно создан, вывод должен быть примерно таким:

Поставщик хранилища ключей Cavium:
  <ключевое имя контейнера>
  ЮАР


CertUtil: команда -key выполнена успешно.
  1. Создайте файл repair.txt, чтобы мы могли обновить хранилище сертификатов для использования контейнера.
[Характеристики]
11 = "" ; Добавить свойство понятного имени
2 = "{текст}" ; Добавить свойство информации о поставщике ключей
_continue_="Container=<ключевое имя контейнера>&"
_continue_="Provider=Провайдер хранилища ключей Cavium&"
_continue_="Флаги=0&"
_continue_="KeySpec=2"
  1. Убедитесь, что демон клиента CloudHSM все еще работает, и используйте глагол certutil - ремонт для обновления серийного номера сертификата. Эта команда будет выглядеть примерно так:
certutil -repairstore my <серийный номер сертификата> repair.txt
  1. После восстановления хранилища сертификатов выполните следующую команду, чтобы убедиться, что сертификат был правильно связан с новым контейнером ключей:
certutil - хранить мои

Вы ожидаете что-то вроде этого

================ Сертификат 0 ================
Серийный номер: <серийный номер сертификата>
Эмитент: CN=MYRootCA
 НеДо: 05.02.2020 13:38
 Непосле: 05.02.2021 13:48
Тема: CN=www.mydomain.com, OU=Управление сертификатами, O=Информационные технологии, L=Хьюстон, S=Техас, C=США
Некорневой сертификат
Хэш сертификата (sha1): 5a...24
  Ключевой контейнер = CNGRSAPriv-...d
  Поставщик = поставщик хранилища ключей Cavium
Закрытый ключ НЕ экспортируется
Проверка шифрования пройдена
CertUtil: команда -store выполнена успешно.

Если Ключевой контейнер = CNGRSAPriv-...d показывает правильный контейнер, тогда вы знаете, что отношение сертификата KSP хорошее

Если ты видишь Закрытый ключ НЕ экспортируется и Проверка шифрования пройдена вы знаете, что используете правильные дескрипторы файлов.

Если вы используете signtool, вам нужно будет добавить /см чтобы заставить его использовать машинное хранилище, а не пользовательское хранилище, поскольку описанный выше процесс создает контейнер, привязанный к машинному хранилищу. Там нет выбора вокруг этого.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.