Вопрос или проблема
Я только что работал над созданием двухуровневой PKI и интересуюсь, почему так много учебников создают такой capolicy.inf
[Version]
Signature="$Windows NT$"
[PolicyStatementExtension]
Policies=InternalPolicy
[InternalPolicy]
OID= 1.2.3.4.1455.67.89.5
URL=http://pki.bedrock.domain/pki/cps.html
[Certsrv_Server]
RenewalKeyLength=4096
RenewalValidityPeriod=Years
RenewalValidityPeriodUnits=20
CRLPeriod=Years
CRLPeriodUnits=20
CRLDeltaPeriod=Days
CRLDeltaPeriodUnits=0
LoadDefaultTemplates=0
и позже выполняет такую команду
Install-AdcsCertificationAuthority -CAType StandaloneRootCA -CACommonName "Bedrock Root Certificate Authority" -KeyLength 4096 -HashAlgorithm SHA256 -CryptoProviderName "RSA#Microsoft Software Key Storage Provider" -ValidityPeriod Years -ValidityPeriodUnits 20 -Force
Я не знаю много о CA, но кажется, что мы дублируем работу, как здесь:
CRLPeriod=Years
CRLPeriodUnits=20
А здесь
-ValidityPeriod Years -ValidityPeriodUnits 20
мы настраиваем одни и те же параметры.
Пример:
https://timothygruber.com/pki/deploy-a-pki-on-windows-server-2016-part-3/
И это не только этот учебник, но и многие другие. Должно быть, есть что-то, что я не понимаю, буду признателен, если кто-то сможет объяснить.
Я думаю, что нашел ответ, это не одно и то же:
Как уже отметил Pawe zaicnupagadi Jarosz, многие веб-сайты копируют информацию из других источников. Тем не менее, неясно, нужны ли оба параметра ValidityPeriod
и ValidityPeriodUnits
как в файле C:\Windows\CAPolicy.inf
, так и в команде Powershell Install-AdcsCertificationAuthority
. Первый файл является локальным на сервере ADCS и используется при генерации запросов на сертификаты (CSR). Последний Powershell устанавливает и настраивает ADCS и, вероятно, записывает информацию в контейнер PKI ADSI в Windows AD.
Дополняя ответ, стоит отметить (неправильное) использование незарегистрированного OID в документации. Существуют официальные OID, которые можно использовать для документации
С сайта oid-rep.orange-labs.fr – Репозиторий OID – Часто задаваемые вопросы – 22
Существует ли определенный OID, который можно использовать для документирования примеров идентификаторов объектов?
- OID {joint-iso-itu-t(2) example(999)} (или 2.999) может использоваться любым человеком, без разрешения, с целью документирования примеров идентификаторов объектов (так же, как “example.com” определен в IETF RFC 2606 как пример для веб-сайтов).
- OID {iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 32473} (или 1.3.6.1.4.1.32473) был выделен IETF RFC 5612 для использования в качестве номера частного предприятия (PEN) в примерах в Request For Comments (RFC), книгах, документации и тому подобном.
Ответ или решение
CAPolicy.inf и Install-AdcsCertificationAuthority: понимание и различия
При работе с инфраструктурой открытых ключей (PKI) на Windows Server, часто возникает необходимость в использовании файла CAPolicy.inf и командлета PowerShell Install-AdcsCertificationAuthority. Эти два элемента в контексте создания и управления центрами сертификации (CA) играют важные, но разные роли.
CAPolicy.inf: структура и назначение
Файл CAPolicy.inf используется для настройки политики сертификации и определения параметров, касающихся сертификатов, которые будет выдавать ваш центр сертификации. В вашем примере файл имеет следующую структуру:
[Version]
Signature="$Windows NT$"
[PolicyStatementExtension]
Policies=InternalPolicy
[InternalPolicy]
OID= 1.2.3.4.1455.67.89.5
URL=http://pki.bedrock.domain/pki/cps.html
[Certsrv_Server]
RenewalKeyLength=4096
RenewalValidityPeriod=Years
RenewalValidityPeriodUnits=20
CRLPeriod=Years
CRLPeriodUnits=20
CRLDeltaPeriod=Days
CRLDeltaPeriodUnits=0
LoadDefaultTemplates=0
Основные элементы:
-
OID: Уникальный идентификатор объекта, используемый для описания политики. Важно учитывать, что использование непроверенных OID может привести к путанице. Для примеров рекомендуется использовать официальные OID.
-
CRLPeriod и CRLDeltaPeriod: Эти параметры определяют, как часто будет обновляться список отозванных сертификатов (CRL). Параметры CRL определяют время действия CRL и его дельты, которые позволяют более эффективно управлять сертификатами.
-
RenewalValidityPeriod: Указывает срок действия новых ключей, что имеет значение при продлении сертификата.
Install-AdcsCertificationAuthority: установка и инициализация
Командлет PowerShell Install-AdcsCertificationAuthority
отвечает за установку и начальную настройку CA. Ваша команда выглядит следующим образом:
Install-AdcsCertificationAuthority -CAType StandaloneRootCA -CACommonName "Bedrock Root Certificate Authority" -KeyLength 4096 -HashAlgorithm SHA256 -CryptoProviderName "RSA#Microsoft Software Key Storage Provider" -ValidityPeriod Years -ValidityPeriodUnits 20 -Force
Параметры командлета:
-
CAType: Определяет тип создаваемого центра сертификации.
-
CACommonName: Задает общее имя для CA, который будет отображаться в сертификатах.
-
KeyLength и HashAlgorithm: Устанавливают параметры безопасности для ключей, которые используются центром сертификации.
-
ValidityPeriod и ValidityPeriodUnits: Эти параметры определяют срок действия самого CA, который отличается от срока действия сертификатов, указываемых в CAPolicy.inf. Это важно для поддержания безопасности и актуальности PKI.
Различия и почему они необходимы
Хотя параметры ValidityPeriod
и ValidityPeriodUnits
в обеих частях могут казаться избыточными, они выполняют разные функции:
-
CAPolicy.inf: Эти параметры влияют на срок действия сертификатов, выдаваемых данным CA, а не на сам CA.
-
Install-AdcsCertificationAuthority: Здесь параметры определяют продолжительность жизни самого центра сертификации.
Таким образом, несмотря на то, что оба файла содержат похожую информацию, они касаются разных аспектов настройки PKI: политики сертификации и установки самого CA.
Заключение
Оптимальный подход к созданию инфраструктуры открытых ключей подразумевает внимательное отношение к настройкам как CAPolicy.inf, так и параметрам командлета Install-AdcsCertificationAuthority. Понимание их различий и назначений позволит вам настроить надежную и безопасную PKI в вашей организации, а также избежать возможных ошибок и недоразумений в документации и практике.
Для более детального понимания рекомендуем ознакомиться с официальной документацией и примерами, которые помогут вам углубить свои знания в области управления центрами сертификации.