Продление центра сертификации
Службы сертификатов поддерживают продление центра сертификации (ЦС). Продление — это выдача нового сертификата для ЦС, чтобы продлить срок его существования после даты окончания исходного сертификата. Вы можете обновить ЦС как задачу в оснастке MMC центра сертификации или с помощью средства Certutil.exe (с помощью команды -renewCert ).
При каждом продлении создается новый сертификат ЦС; Однако администратор может создать новую пару открытого и закрытого ключей или повторно использовать существующую пару открытого и закрытого ключей для сертификата ЦС. Для обеспечения согласованности и целостности сертификаты ЦС и списки отзыва сертификатов (CRL), выданные центром сертификации до его продления, будут доступны после обновления ЦС. Чтобы сделать их доступными, службы сертификатов поддерживают индекс сертификатов ЦС, списков отзыва сертификатов и ключей.
Индексы и суффиксы сертификатов ЦС и списков отзыва сертификатов во время различных операций продления ЦС приведены ниже.
Операция | Индекс сертификата ЦС | Суффикс имени файла сертификата ЦС | CRL и индекс ключа | CRL и суффикс имени контейнера ключа |
---|---|---|---|---|
Исходная установка ЦС | 0 | "" | 0 | "" |
Продление с помощью нового ключа | 1 | "(1)" | 1 | "(1)" |
Повторное использование ключа для продления | 2 | "(2)" | 1 | "(1)" |
Повторное использование ключа для продления | 3 | "(3)" | 1 | "(1)" |
Продление с помощью нового ключа | 4 | "(4)" | 4 | "(4)" |
Повторное использование ключа для продления | 5 | "(5)" | 4 | "(4)" |
Продление с помощью нового ключа | 6 | "(6)" | 6 | "(6)" |
Повторное использование ключа для продления | 7 | "(7)" | 6 | "(6)" |
При установке ЦС индекс сертификата равен нулю, а суффикс сертификата — "" (пустая строка). При каждом обновлении сертификата (независимо от того, используются ли ключи повторно) индекс сертификата увеличивается на единицу, а суффикс имени файла сертификата становится строкой формы "(n)", где n обозначает количество обновлений сертификата ЦС. После первого продления индекс сертификата равен 1, а суффикс имени файла сертификата — "(1)". После второго продления индекс сертификата равен 2, а суффикс имени файла сертификата — "(2)" и т. д.
Хотя индекс сертификата ЦС и суффикс увеличиваются на единицу при каждом обновлении ЦС, индексы списка отзыва сертификатов и ключей и суффиксы имени файла задаются в индекс сертификата ЦС только в том случае, если процесс продления включает новую пару открытого и закрытого ключей. В противном случае значения этих индексов и суффиксов остаются теми же, что и для последнего индекса. Во время продления администратор указывает, создается ли новая пара ключей или используется существующая пара ключей. (В оснастке MMC центра сертификации параметр в пользовательском интерфейсе указывает новую или существующую пару ключей. В средстве Certutil.exe команда certutil -renewCert обновляет ЦС с помощью новой пары ключей, а команда certutil -renewCert ReuseKeys обновляет ЦС с помощью существующей пары ключей.)
Индекс списка отзыва сертификатов напрямую привязан к индексу ключа, который устанавливается в индекс сертификата ЦС, только если для продления используется новая пара ключей. После первого обновления (в котором использовалась новая пара ключей) индекс списка отзыва сертификатов и ключа устанавливается в значение 1, а список отзыва отзыва сертификатов и суффикс имени контейнера ключей — "(1)". Однако после второго обновления индекс списка отзыва сертификатов и ключа остается 1, а список отзыва сертификатов и суффикс имени контейнера ключей также остается "(1)"; Это связано с тем, что во втором продлении используется существующая пара ключей, и для каждой пары ключей ЦС выдается только один список отзыва сертификатов.
Вы можете получить индексированные сертификаты ЦС и списки отзыва сертификатов, вызвав метод GetCertificateProperty (в интерфейсах ICertServerExit и ICertServerPolicy ). При получении определенных свойств, связанных с сертификатом ЦС или списком отзыва сертификатов, к именам свойств можно добавить индекс сертификата ЦС с нуля. Например, чтобы получить индекс CRL, соответствующий третьему сертификату ЦС, передайте свойство "CRLIndex.2" в ICertServerPolicy::GetCertificateProperty; для таблицы полученное значение свойства "CRLIndex.2" будет равно 1. Свойство CertCount можно использовать для определения количества выданных ЦС сертификата ЦС.
Сертификаты ЦС и списки отзыва сертификатов содержат расширение, предоставляющее сведения о сертификате и индексе ключа. Расширение определено в Wincrypt.h как szOID_CERTSRV_CA_VERSION со значением "1.3.6.1.4.1.311.21.1". Данные расширения — это значение DWORD (закодированное как X509_INTEGER в расширении); низкие 16 бит являются индексом сертификата, а высокие 16 бит — ключевым индексом.
При начальной установке ЦС создается нулевой индекс сертификата, а индекс ключа равен нулю. Продление сертификата ЦС приведет к приращению индекса сертификата. Если ключ повторно используется при продлении, индекс ключа будет таким же, как и предыдущий. Если ключ не используется повторно, индекс ключа будет соответствовать новому индексу сертификата.
Связанные темы