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

Ответ служб сертификации Microsoft Active Directory от certsrv

Я пытаюсь использовать сертификаты и закрытые ключи во встроенных системах, которые были созданы из служб сертификатов Microsoft Active Directory. NDES и SCEP в настоящее время не входят в сферу охвата, поэтому он должен быть полуавтоматическим.

Я использую веб-инструмент Microsoft на нашем сервере AD CA по адресу https: // сервер / certsrv . Я могу пройти и сгенерировать ответ без CSR и экспортировать закрытый ключ с сертификатом. Ответ - это страница, которая просит меня «Установить этот сертификат» или «Сохранить ответ».

Если я запустил опцию «Установить этот сертификат», приложение Windows Certmgr покажет, что я импортировал сертификат и у меня есть закрытый ключ. Затем его можно экспортировать как файл PKCS # 12, который можно использовать или преобразовать в PEM. Однако, если я использую опцию «Сохранить ответ» и сохраняю файл как p7b (на что указывает certutil при проверке файла ответа), а затем я использую файл p7b для импорта сертификатов, закрытый ключ недоступен. Это согласованно, поскольку я не ожидал, что файл PKCS # 7 будет хранить закрытые ключи.

Мой вопрос:

Формат файла PKCS # 7, похоже, не поддерживает закрытые ключи, а OpenSSL, похоже, не поддерживает извлечение закрытых ключей из файла PKCS # 7. Есть ли способ использовать веб-инструмент certsrv и получить сертификат и закрытый ключ без необходимости «Установить этот сертификат» в Windows? Кроме того, WTF позволяет MS устанавливать закрытые ключи, которые я не могу получить? Я просмотрел скрипты в файле https: //dakota.main.lab/certsrv/certfnsh.asp и они, похоже, используют те же данные pkcs # 7, которые представлены в выводе "save response".

Заранее спасибо.

Dinsdale

Когда вы генерируете запрос на сертификат с помощью веб-регистрации, закрытый ключ генерируется локально с помощью вашего браузера. Запрос на подпись сертификата отправляется в ЦС (без закрытого ключа), после чего он подписывается. Затем сертификат будет представлен вам на веб-странице со ссылкой «Установить этот сертификат».

В этот момент вы не можете сохранить это как PKCS # 12 (игнорируя тот факт, что вы не можете щелкнуть правой кнопкой мыши и выбрать «Сохранить как»), поскольку это просто сертификат на сервере.

Когда вы «Установить этот сертификат», он сохраняется в вашем хранилище сертификатов, после чего связывается с закрытым ключом. Если бы вы открыли MMC сертификатов, вы бы увидели там этот сертификат, и он показал бы, что у вас также есть закрытый ключ. Только на этом этапе вы можете экспортировать оба файла в виде файла PKCS # 12.

В качестве альтернативы вы можете использовать MMC Certificates, чтобы запросить сертификат, а затем экспортировать его с его закрытым ключом в виде PKCS # 12, но даже в этом случае сертификат сначала устанавливается на ваш компьютер (чтобы объединить его с его закрытым ключом) прежде чем вы сможете его экспортировать.

Вы можете выполнить аналогичную процедуру в командной строке, но, опять же, вам необходимо установить сертификат, прежде чем вы сможете экспортировать его как PKCS # 12.

Итак, я полагаю, что ответ на ваш вопрос будет: «Нет, нельзя. Закрытый ключ всегда является локальным и должен быть связан с сертификатом, возвращаемым из CA, прежде чем вы сможете экспортировать его как PKCS # 12.