У меня есть веб-сайт, работающий в Windows Server 2012, IIS. Пользователи проходят аутентификацию с использованием клиентских сертификатов.
Раньше я выдавал клиентские сертификаты с помощью оснастки MMC центра сертификации.
Поскольку количество пользователей быстро растет, я сейчас создаю клиентские сертификаты в пакетном режиме, используя библиотеку BouncyCastle и небольшой код C #. Я считаю, что я мог бы сделать это также с помощью Makecert или Openssl.
В этих сертификатах я устанавливаю для записей списка отзыва те же значения, которые использует оснастка центра сертификации.
IIS прекрасно принимает эти сертификаты.
Мой вопрос касается отзыва сертификата. Сертификаты клиентов, выданные на сервере, можно легко отозвать с помощью оснастки MMC, но предположим, что мне нужно отозвать любой из этих новых сертификатов. Хотя IIS принимает эти сертификаты, у него нет никаких записей о них, поэтому очевидно, что я не могу отозвать их с помощью оснастки центра сертификации. Кроме того, похоже, что нет возможности импортировать эти сертификаты, чтобы они отображались в оснастке центра сертификации.
Итак, как лучше всего это сделать? Нужно ли мне настраивать список отзыва (CRL) где-нибудь еще для этих сертификатов?
Ты делаешь это неправильно. Если вы используете ЦС Windows для выдачи сертификатов, то только ЦС Windows должен подписывать сертификаты с помощью этого конкретного сертификата ЦС и пары ключей. Вы ставите под угрозу свою PKI, используя openssl и сторонние библиотеки для подписи клиентских сертификатов с помощью сертификата CA Windows. Потому что вы нарушаете RFC5280 §4.1.2.2 требование: CA должен вести учет выданных сертификатов и обеспечивать соблюдение некоторых ограничений. Например, уникальность серийного номера.
Также это может привести к несоответствию политики и, конечно, невозможности предоставить средства отзыва для сертификатов, подписанных openssl.
Не имеет значения, какой инструмент вы используете для генерации и подписи запросов, но только одно приложение должно использовать конкретный сертификат CA для подписи других сертификатов, хранения их в базе данных и подписания CRL. Возможны обходные пути, но ни один из них не будет поддерживаться.
Если ваши пользователи находятся в Active Directory, вам следует использовать регистрация сертификата функциональность для автоматизации задач выдачи сертификатов.