Назад | Перейти на главную страницу

Что и где закрытый ключ в ЦС Майкрософт?

Мне нужен сертификат для обмена данными с поставщиком услуг. Этот провайдер предлагает использовать OpenSSL, они служат примером для каждого шага создания сертификата:

  1. Создайте новый закрытый ключ.
  2. Создайте запрос сертификата (CSR) на основе закрытого ключа из шага 1.
  3. Отправьте им CSR и при получении нового сертификата объедините его с ключом из шага 1.
  4. Используйте сертификат с ключом для подписи данных.

Я попытался повторить эти шаги с помощью Microsoft CA:

  1. В оснастке «Сертификаты» я создал ручной запрос сертификата (* .req, который, как мне кажется, совпадает с * .csr). Не было вариантов указать, какой ключ использовать
  2. Я отправил им запрос и успешно получил сертификат без ключа
  3. При импорте полученного сертификата в мое личное хранилище ключ был добавлен автоматически (к моему удивлению), но я понятия не имею, что это был за ключ.
  4. Теперь я могу экспортировать этот сертификат с ключом (* .pfx) и подписывать данные. Однако поставщик услуг сообщает об ошибке («подписано неизвестным сертификатом»).

Возникает вопрос: какой ключ использовался для создания CSR? Какой ключ был объединен? Где ошибка в моих шагах?

В оснастке «Сертификаты Windows», если вы можете экспортировать закрытый ключ, этот ключ также находится в вашем хранилище сертификатов. Это может быть связано с тем, что вы сгенерировали запрос и импортировали общедоступный сертификат на том же компьютере.

Большинство пользовательских агентов TLS проверяют, что сертификат привязан к корню, которому они доверяют. Либо отправьте пользователю общедоступный сертификат вашего корневого ЦС, и они ему доверяют, либо подпишите свой сертификат в одном из обычно доверенных «общедоступных» ЦС.

Какой ключ использовался для создания CSR?

Клиент генерирует уникальную пару ключей: открытый и связанный закрытый ключ. Затем клиент создает CSR с открытым ключом внутри. Закрытый ключ сохраняется клиентом.

Какой ключ был объединен?

Когда клиент получает сертификат, он совпадает с открытым ключом, который остается нетронутым для сохраненного закрытого ключа, и выполняет ассоциацию.

Где ошибка в моих шагах?

Скорее всего, это неверная конфигурация на стороне поставщика услуг. Microsoft CA выдает те же сертификаты, что и OpenSSL.

Учетные данные для ответа отправляются Вадиму Подансу, также известному как PowerShell CryptoGuy