Планирование инфраструктуры PKI. Что такое CRL или список аннулированных сертификатов? Разработчик: ООО "Цифровые Технологии"

Одним из важных аспектов безопасности сайта является процедура аннулирования SSL сертификатов и их внесения в списки CRL. Как известно, центры сертификации выписывают SSL сертификаты безопасности только после валидации доменного имени и в некоторых случаях после тщательной проверки компании, которой принадлежит этот домен. Благодаря данной процедуре сертификационный центр может обеспечить достоверность информации в SSL сертификате и соответственно гарантирует безопасность защищенного веб-сайта. Все же иногда случается, что безопасность сайта может оказаться под угрозой даже с действующим SSL сертификатом, например, если специальный ключ доступа был утерян или украден. В таких случаях он должен быть аннулирован (отозван). Аннулированные SSL сертификаты заносятся в специальные списки CRL. Причины аннулирования SSL Существует множество причин для внесения SSL сертификатов в списки CRL до истечения срока их действия. Вот некоторые из них:

  • SSL сертификат содержит неверное название компании или другую неверную информацию
  • специальный ключ был утерян или скомпрометирован
  • сотрудник, имеющий к нему доступ, уволился с места работы
  • нарушение политики безопасности
  • защищенный сайт больше не работает и т.д.
К этому перечню можно отнести любые факторы, которые могут способствовать утечке информации во время ее передачи по защищенному каналу. Дабы этого избежать, необходимо запросить отзыв SSL сертификата.

Статус SSL сертификата

Статус SSL сертификата на предмет его аннулирования проверяется браузером перед каждым установлением безопасного соединения по протоколу https. Существует два типа статусов:
  1. Аннулирован или же отозван . Процедура аннулирования безвозвратна. Если статус гласит «аннулирован», то чтобы снова защитить Ваш сайт необходимо заново купить SSL сертификат .
  2. Временно недоступен . Если же владелец домена, например, не уверен, потерял ли он ключ, он может использовать второй статус - «временно недоступен» - до установления места нахождения секретного ключа. В таком случае, если он нашелся и не был доступен для третьих лиц, этот статус можно отозвать и SSL снова станет действительным.

CRL или списки САС

Как же пользователи веб-ресурса узнают, что SSL аннулирован и защита сайта нарушена? Как раз для этого существуют списки аннулированных сертификатов (в международном варианте - Certificate Revocation Lists, сокращенно CRL), которые содержат следующие данные:
  • уникальные серийные номера всех отозванных SSL сертификатов
  • название ответственного центра сертификации,
  • дату аннулирования,
  • актуальную дату,
  • дату публикации нового списка CRL.
Каждый список CRL защищен цифровой подписью, которая обеспечивает целостность информации в них и не позволяет третьим лицам внести изменения. Списки CRL регулярно обновляются и публикуются, обеспечивая актуальную информацию о статусе каждого SSL сертификата. Таким образом, браузер пользователя всегда будет знать, можно ли доверять указанному сайту с https соединением и соответственно, разрешать или блокировать доступ к нему.

Публикация списков CRL

Списки CRL создаются и публикуются с определенной периодичностью. Тем не менее в некоторых случаях, CRL могут опубликовать сразу после проведения операции по отзыву. Аннулирование SSL сертификатов и их внесение в списки CRL производит выдавший их центр сертификации. Срок действия списка CRL может колебаться от 1 до 24 часов.

В каких случаях используются списки CRL?

Когда мы имеем дело с сертификатами, мы используем CRL. Например, когда браузер пытается установить https соединение с сайтом, он верифицирует сертификат сервера. В процессе верификации, браузер выбирает способ проверить, не отозван ли SSL сертификат. Если выбран способ проверки по списку отозванных сертификатов CRL, браузер загружает соответствующий файл CRL по адресу, указанному в SSL сертификате и производит его проверку. Если Центр сертификации указал, что данный SSL сертификат отозван, доступ пользователя к сайту будет закрыт. Альтернативным методом спискам CRL является протокол валидации сертификатов, известный под аббревиатурой

Примечание: данный материал публикуется как обязательный для знания IT-специалистами, которые занимаются или только собираются заниматься темой PKI (Public Key Infrastructure ).

Большинство системных администраторов считают, что планирование списков отзыва сертификатов (Certificate Revocation List - CRL ) и файлов сертификатов самих серверов CA - это элементарная вещь. Но практика показывает, что очень многие из них сильно заблуждаются. Поэтому предлагаю немного повременить с CryptoAPI и поговорить о немного более насущных вещах - рекомендации по планированию публикации списков CRL и сертификатов CA (Certification Authority ), которые используются certificate chaining engine для построения и проверок цепочек сертификатов. О том, как работает этот движок можете почитать пост: Certificate Chaining Engine - как это работает .

Куда и как публиковать файлы CRL и CRT?

Как известно, каждый выданный в CA сертификат (кроме самоподписанных сертификатов. Корневой сертификат так же является самоподписанным сертификатом) содержит 2 расширения:

  1. В расширении «CRL Distribution Points (CDP )» хранятся ссылки на CRL издавшего конкретный сертификат CA;
  2. В расширении «Authority Information Access (AIA )» хранятся ссылки на сертификат CA, издавшего конкретный сертификат. А для сертификатов, выданных CA под управлением Windows Server 2008 и выше - могут содержаться ссылки на OCSP Responder (см. OCSP (часть 1) и OCSP (часть 2) )

В принципе, эти настройки годятся для нормальной работы certificate chaining engine в небольших сетях с одним лесом и доменом без сайтов (или с сайтами, соединённых быстрыми каналами). Если сеть состоит из нескольких доменов (или лесов с настроенным Cross-forest enrollment) и сайтами, соединённых не очень быстрыми каналами, то эти настройки уже могут приводить к сбоям построения и проверок цепочек сертификатов. Я не буду рассказывать, что означают галочки, т.к. с ними вы можете ознакомиться в статьях CRL Publishing Properties и AIA Publishing Properties , а приступлю сразу к разбору путей.

Первый путь указывает путь файловой системы, куда физически публикуются файлы CRL и CRT. Следующая ссылка (LDAP://{LDAP path} ) указывает, точку публикации CRL и CRT в Active Directory. Так же эти пути будут прописаны во всех выдаваемых сертификатах. Третья ссылка (HTTP://{URL} ) указывает URL, по которому клиенты могут скачать файл через HTTP и этот URL будет включён в расширение CDP/AIA всех выдаваемых сертификатов. Последняя ссылка ничего не делает и добавлена в целях дополнительной точки публикации файлов CRL/CRT в сетевой папке. Почему эти настройки не оптимальны для больших сетей?

Вот как будут выглядеть расширения CDP и AIA в выдаваемых сертификатах при таких настройках:

CRL Distribution Point
Distribution Point Name:
Full Name:
URL=ldap:///CN=Contoso%20CA,CN=DC1,CN=CDP,CN=Public%20Key%20Services,CN=Services,CN=Configuration,DC=contoso,DC=com?certificateRevocationList?base?objectClass=cRLDistributionPoint
URL=http://dc1.contoso.com/CertEnroll/Contoso%20CA.crl

Authority Info Access
Alternative Name:
URL=ldap:///CN=Contoso%20CA,CN=AIA,CN=Public%20Key%20Services,CN=Services,CN=Configuration,DC=contoso,DC=com?cACertificate?base?objectClass=certificationAuthority
Authority Info Access
Access Method=Certification Authority Issuer (1.3.6.1.5.5.7.48.2)
Alternative Name:
URL=http://dc1.contoso.com/CertEnroll/DC1.contoso.com_Contoso%20CA.crt

Это важно знать, поскольку certificate chaining engine (сокращённо назовём его CCE ) будет проверять ссылки в том порядке, в котором они приведены в расширениях сертификата. Т.е. сперва будет пробовать скачать файл из Active Directory в течении 10 секунд. Если за 10 секунд файл не скачается, CCE будет пытаться скачать указанный файл по следующей ссылке (HTTP). При этом времени на это будет отводиться в 2 раза меньше (т.е. 5 секунд), чем в предыдущей попытке. И так будет происходить с каждой последующей ссылкой, пока не будет добыт файл, закончатся ссылки или отвалится по таймауту. На обработку каждого расширения для CCE выделяется ровно 20 секунд.

Уже на данном этапе видно, что любой недоменный клиент (будь то смартфон, изолированная рабочая станция в интернете, etc.) при попытке скачать файл может терять до 10 секунд на обработку первой ссылки, которая всегда завершится неудачей. Следовательно, первой ссылкой в CDP/AIA должна быть ссылка, которая использует универсальный для всех протокол (это должен быть HTTP), не смотря на то, что в домене, где расположен CA доступ через LDAP будет чуточку быстрее.

Второй момент заключается в репликации объектов AD. После того как CRL/CRT были опубликованы в Active Directory, клиенты об этом узнают не сразу, т.к. здесь вступает фактор репликации AD. Поскольку все объекты PKI публикуются в AD в разделе forest naming context , то эти данные реплицируются не только в прелелах текущего домена, но и всего леса. Поэтому задержки в появлении новых файлов у клиентов могут быть очень значительными и достигать нескольких часов. Задержки могут составлять время до двух полных циклов полной репликации в лесу. А если у вас используется cross-forest enrollment, то там ситуация будет ещё хуже, поскольку это ещё будет зависить от периодичности репликации объектов PKI между лесами (AD не поддерживает репликацию между лесами и репликация объектов PKI выполняется вручную) и уже может достигать нескольких суток. По этой причине рекомендуется либо вовсе отказаться от публикации CRL/CRT в AD и включения этих ссылок в сертификаты, либо располагать следом за более доступными протоколами.

С HTTP тоже не всё так идеально, как это может показаться с первого взгляда. Совсем не обязательно, чтобы сервер CA выполнял и роль веб-сервера (хотя, только для внутреннего использования это допустимо с определёнными оговорками). Будет лучше даже если файлы CRL/CRT будут копироваться как на внутренний, так и на внешний веб-серверы. В идеале эти файлы должны копироваться как минимум на 1-2 внутренних и 1-2 внешних веб-сервера для обеспечения высокой доступности. В таких случаях уже используется 4-я ссылка в настройках CA, которая должна указываь на шару DFS, чтобы файлы автоматически распространялись по веб-серверам. И вот здесь мы снова сталкиваемся с латентностью репликации DFS между серверами. Если все схемы публикации CRL/CRT подвержены латентности репликации, то как с этим бороться, чтобы файлы были всегда в актуальном состоянии?

Примечание: хоть CCE поддерживает скачивание CRL и CRT с HTTPS ссылок, делать это категорически нельзя, иначе CCE свалится в бесконечный цикл проверки сертификатов.

Периодичность публикации и обновления файлов CRL и CRT

По умолчанию в Windows Server основные CRL (Base CRL ) публикуются раз в неделю и инкрементные CRL (Delta CRL ) публикуются раз в сутки. Файлы сертификатов CA обычно обновляются через промежутки равные времени жизни сертификата самого CA (или чаще, если сертификат CA обновляется внепланово). Если сертификаты CA нужно обновлять достаточно редко (раз в несколько лет) и к этому следует готовиться отдельно, то обновление CRL происходит автоматически без вмешательства администратора и здесь требуются особые корректировки о которых мы сейчас и поговорим.

Если посмотреть на CRL, то мы увидим следующее:

Сейчас нас будут интересовать только 3 поля:

  • Effective Date - указывает дату и время с которого данный CRL считается действительным и оно по умолчанию на 10 минут меньше, чем фактическое время, чтобы покрыть издержки рассинхронизации времени между сервером и клиентом;
  • Next Update - указывает дату и время, когда заканчивается срок действия конкретного CRL и он считается недействительным;
  • Next CRL Publish - указывает дату и время публикации следующего списка CRL.

Примечение: время в этих полях указывается в формате UTC без учёта временных зон.

Обычно время Next Update и Next CRL Publish одинаково. Но у меня, как вы видите на картинках, Next Update равен 8 дням (дефолтный срок действия CRL), а вот Next CRL Publish равен 7 дням после начала действия CRL. Т.е. CRL обновляется каждые 7 дней, но срок действия равен 8 дням (период публикации CRL + время overlap). Это сделано как раз для покрытия расходов времени (издержки репликации) распространения списков отозванных сертификатов от сервера CA до точек, откуда клиенты будут скачивать CRL. Как это делается?

Для этого в реестре на сервере CA по пути HKLM\System\CurrentControlSet\Services\CertSvc\Configuration\CA Name существует 4 ключа:

  • CRLOverlapUnits - указывает время до истечения срока действия текущего основного CRL, за которое будет публиковаться новый основной CRL.
  • CRLOverlapPeriod - указывает единицу измерения этого времени для основного CRL
  • CRLDeltaOverlapUnits - указывает время до истечения срока действия текущего инкрементального (если используется) CRL, за которое будет публиковаться новый инкрементальный CRL
  • CRLDeltaPeriodPeriod - указывает единицу измерения этого времени для инкрементального CRL.

Если вы используете LDAP ссылки в расширениях CDP/AIA сертификатов и/или у вас есть латентность репликации файлов между веб-серверами, то вы должны отрегулировать это время, которое должно быть не менее, чем максимальное время репликации каталога AD во всём лесу или DFS как для основных, так и для инкрементальных CRL (если они у вас используются). Данную операцию можно автоматизировать утилитой certutil:

certutil –setreg ca\CRLOverlapUnits 1
certutil –setreg ca\CRLOverlapPeriod "days"
certutil –setreg ca\CRLDeltaOverlapUnits 8
certutil –setreg ca\CRLDeltaOverlapPeriod "hours"
net stop certsvc & net start certsvc

Примечание: CRLOverlap не может быть больше периодичности публикации BaseCRL, а CRLDeltaOverlap не может быть больше 12 часов.

Общая периодичность публикации самих файлов CRL зависит от количества отзываемых сертификатов за некоторый промежуток времени (обычно измеряется в неделях). Если сертификаты отзываются десятками в неделю, то есть смысл сократить периодичность публикации основных CRL до 2 раз в неделю и Delta CRL до 2-х раз в сутки. Если сертификаты отзываются редко (реже, чем раз в неделю), то периодичность публикации Base CRL можно увеличить до 2-4 недель, а от Delta CRL можно даже отказаться или публиковать раз в неделю. Но это касается только Issuing или Online CA. Для Offline CA рекомендации будут чуть другие. Поскольку Offline CA выдают сертификаты только другим CA и большую часть времени выключены, для них следует отключить публикацию Delta CRL (установив параметр CRLDelta PeriodUnits в ноль), а основные CRL публиковать раз в 3-12 месяцев. Хоть это и Offline CA, но на него так же распространяются требования по корректировке времени публикации и срока действия CRL.

CDP и AIA в корневых сертификатах

Как уже отмечалось, расширения CDP и AIA содержат ссылки на CRL/CRT издавшего конкретный сертификат CA, то с корневыми сертификатами будет немного иначе. Если быть точнее, то в корневых сертификатах этих расширений быть не должно совсем. Почему? Windows Server 2003 по умолчанию добавлял эти расширения в самоподписанный сертификат, когда CA конфигурировался как корневой CA. В нём AIA содержал ссылки по которым можно было скачать этот же сертификат. Очень прикольно:-).

А CDP - не менее прикольно. Корневые сертификаты всегдя являются конечной точкой самой цепочки и доверия этой цепочки сертификатов. К корневым сертификатам доверие всегда устанавливается явное путём помещения сертификата в контейнер Trusted Root CAs (а ко всем остальным сертификатам устанавливается неявное доверие через цепочку сертификатов). Следовательно отменить доверие корневому сертификату CA можно только одним способом - удалить сам сертификат из контейнера Trusted Root CAs и никак иначе. Вторая проблема заключается в том, что все CRL подписываются закрытым ключом самого CA. А теперь предположим, что CA отозвал свой сертификат и поместил его в CRL. Клиент скачивает CRL и видит, что сертификат CA отозван. Можно предположить, что это всё и никакой проблемы здесь нет. Однако, получается, что CRL подписан отозванным сертификатом и мы не можем доверять этому CRL как и считать сертификат CA отозванным. Именно поэтому начиная с Windows Server 2008 при установке корневого CA, эти расширения по умолчанию уже не включены в корневой сертификат. А для Windows Server 2003 приходилось лепить костыли в файле CAPolicy.inf :


Empty = true
Empty = true

Как показывает практика, очень много администраторов игнорируют такие вещи и делают всё простым Next-Next, за что они должны гореть в аду. Но не только простые Windows-админстраторы, а луноходы (фаны линукса) тоже должны там гореть. Как живой пример бардака в сертификатах приведу компанию StartCom , которая в сентябре 2009 получила право выдавать EV (Extended Validation ) сертификаты и вот их корневой сертификат: http://www.startssl.com/sfsca.crt

Мало того, что у них в корневом сертификате есть расширение CDP, но и с ссылками на CRL у них в цепочке тоже бардак мутный. Есть подозрение, что это сделано для поддержки какой-то ветки линукса (для совместимости или просто как костыль), но вот такой он опенсорс. Так что не каждый публичный и коммерческий CA следует всем бест-практисам. А вам советую им следовать, тогда меньше вероятность, что вы потом будете гореть в аду.

Изменения в существующих инфраструктурах

Изменение путей в уже существующих инфраструктурах вопрос достаточно серьёзный, хоть и прост в реализации. Если вы решились на такой шаг, то следует руководствоваться следующими правилами:

  • пути публикации физических файлов можно располагать в произвольном порядке;
  • новые ссылки к файлам, по которым клиенты будут их скачивать должны располагаться первыми, т.е. с более высоким приоритетом (кроме случаев, когда вы добавляете ссылки только для обеспечения более высокой доступности файлов. Тогда новые ссылки можно просто добавить в хвост уже существующим);
  • если вы собираетесь уйти от существующих ссылок на CRL/CRT, то в для них следует отключить опцию публикации ссылок в сертификатах. Однако, до окончания действия сертификата CA вы будете обязаны их поддерживать в рабочем состоянии, т.к. они содержатся в уже выданных сертификатах. А новые ссылки появятся только в сертификатах, которые были выпущены после изменения CDP/AIA.
  • если у вас корневой сертификат уже содержит расширения CDP/AIA, то вы не можете их оттуда убрать до момента обновления корневого сертификата. При обновлении корневого сертификата на Windows Server 2003, вам потребуется создать CAPolicy.inf файл, прописать нужные настройки (например, как уже указано выше с пустыми CDP и AIA). Более подробно про файл CAPolicy.inf можно прочитать по ссылке: http://technet.microsoft.com/en-us/library/cc728279(WS.10).aspx

Новые технологии

С выходом Windows Server 2008 Enterprise Edition вы можете внедрить в своей сети Online Responder для снижения нагрузки на серверы публикации CRL (хоть пути к OCSP публикуются в расширении AIA, к файлам CRT это никакого отношения не имеет). Но даже внедрение OCSP не решает этих проблем, поскольку реализация OCSP в Windows Server основана на регулярном чтении CRL и, следовательно, зависит от латентности репликации AD и/или DFS, а так же этим сервисом могут пользоваться только клиенты начиная с Windows Vista. Хочу отметить один приятный момент. Если изменения ссылок на CRL/CRT скажутся только на новых сертификатах (уже выпущенные сертификаты ничего не будут знать о новых путях в CDP/AIA), то интегрировать OCSP внутри домена/леса с уже существующей инфраструктурой PKI достаточно легко. Все уже выданные сертификаты могут быть проверены на отзыв с использованием OCSP: Managing OCSP Settings with Group Policy .

Заключение

В данном посте я обозначил ключевые моменты в структуированном (как мне кажется) виде, которые следует знать при планировании публикации файлов CRL/CRT и ссылок на них. Как вы видите, внедрение новых технологий пока что не освобождает от знания и соблюдения рекомендаций публикации CRL/CRT в вашей инфраструктуре PKI. Я считаю этот материал достаточным для начального и среднего уровня знаний по теме revocation и chain building и для более детального изучения всего этого процесса уже следует обратиться сюда:

Эта статья является частью в тестовом окружении.

После выбора схемы иерархии, необходимо выбрать:

  • срок действия сертификата CA ;
  • сроки действия издаваемых сертификатов;
  • сроки действия Base CRL и Delta CRL ;
  • срок действия перекрытия (overlap) Base CRL и Delta CRL ;
  • использование OCSP Online Responder;
  • CRL Distribution Points (CDP) и Authority Information Access (AIA).

Необходимо заранее спланировать изменения, которые будут вносится в настройки CA , как минимум, это параметры CDP и AIA расширений. Их необходимо внести сразу после установки, и до выдачи первых сертификатов. По умолчанию, некоторые шаблоны помечены для автоматического издания. Доменный контроллер запросит себе два сертификата сразу же, как только обнаружит появление CA . Это произойдет при автоматическом обновлении групповых политик. По этой причине, после полной настройки CA нужно будет убедится, что ни один сертификат еще не был выдан.

Выбор срока действия сертификата CA

Срок действия сертификата CA рекомендуется выбирать в пределах 5-20 лет. Чем больше, тем реже придется заниматься его распространением, но и тем больше будет проблем при компрометации этого сертификата. Для одноуровневой иерархии срок действия сертификата CA по умолчанию 5 лет. Срок действия сертификата CA выбирается при его установке или вышестоящим CA .

Выбор сроков действия издаваемых сертификатов

Значение по-умолчанию 2 года. Шаблоны переопределяют это значение.

Со временем CRL может очень сильно вырасти в размерах. Чтобы уменьшить нагрузку по получению CRL , используется Delta CRL .

Ссылки в расширениях CDP и AIA можно изменить и добавить двумя способами. При помощи certutil.exe и при помощи оснастки certsrv.msc . Однако при помощи оснастки certsrv.msc нельзя поменять порядок следования ссылок в сертификатах. И если планируется изменить порядок по умолчанию, то certutil.exe остается единственным выбором. Единственным, потому, что через оснастку доступны не все свойства ссылок. Взгляните сами на дефолтные ссылки AIA из свежеустановленного CA . Для LDAP ссылки установлено свойство CSURL_SERVERPUBLISH, однако в оснастке просто нет возможности установить это свойство. Интересно, не правда-ли.

Планирование CDP

Таблица ссылок для расширения CDP
Код
0 65 C:\Windows\system32\CertSrv\CertEnroll\%3%8%9.crl

65:C:\Windows\system32\CertSrv\CertEnroll\%3%8%9.crl

1 79 ldap:///CN=%7%8,CN=%2,CN=CDP,CN=Public Key Services,CN=Services,%6%10

79:ldap:///CN=%7%8,CN=%2,CN=CDP,CN=Public Key Services,CN=Services,%6%10
- Publish CRL s to this location
- Include in all CRL s. Specifies where to publish in the Active Directory when publishing manually.


- Publish Delta CRL s to this location

2 6 http://%1/CertEnroll/%3%8%9.crl

6:http://%1/CertEnroll/%3%8%9.crl
- Include in CRL s. Clients use this to find Delta CRL locations.
- Include in the CDP extension of issued certificates

3 0 file://%1/CertEnroll/%3%8%9.crl

0:file://%1/CertEnroll/%3%8%9.crl

  • для ссылки 2 добавлены две опции, т.е. включается добавление в издаваемые сертификаты HTTP ссылки;
  • ссылка 3 не меняется, поскольку IIS сервер находится на сервере CA , и публикация для HTTP сервера выполняется по ссылке 0.

certutil.exe :

certutil -setreg CA\CRLPublicationURLs "65:C:\Windows\system32\CertSrv\CertEnroll\%3%8%9.crl\n79:ldap:///CN=%7%8,CN=%2,CN=CDP,CN=Public Key Services,CN=Services,%6%10\n6:http://%1/CertEnroll/%3%8%9.crl\n0:file://%1/CertEnroll/%3%8%9.crl"

certutil -setreg CA\CRLPublicationURLs "65:C:\Windows\system32\CertSrv\CertEnroll\%%3%%8%%9.crl\n79:ldap:///CN=%%7%%8,CN=%%2,CN=CDP,CN=Public Key Services,CN=Services,%%6%%10\n6:http://%%1/CertEnroll/%%3%%8%%9.crl\n0:file://%%1/CertEnroll/%3%8%9.crl"

Планирование AIA

Таблица ссылок для расширения AIA
Код Ссылка и используемые параметры
0 1 C:\Windows\system32\CertSrv\CertEnroll\%1_%3%4.crt

1:C:\Windows\system32\CertSrv\CertEnroll\%1_%3%4.crt
- CSURL_SERVERPUBLISH

1 3 ldap:///CN=%7,CN=AIA,CN=Public Key Services,CN=Services,%6%11

3:ldap:///CN=%7,CN=AIA,CN=Public Key Services,CN=Services,%6%11
- CSURL_SERVERPUBLISH

2 2 http://%1/CertEnroll/%1_%3%4.crt

2:http://%1/CertEnroll/%1_%3%4.crt
- Include in the AIA extension of issued certificates

3 0 file://%1/CertEnroll/%1_%3%4.crt

0:file://%1/CertEnroll/%1_%3%4.crt

4 32 http://%1/ocsp

32:http://%1/ocsp
- Include in the online certificate status protocol (OCSP) extension

Примечания и отличия от конфигурации по-умолчанию:

  • параметры для ссылки 0 невозможно задать из оснастки certsrv.msc ;
  • параметры для ссылки 1 невозможно задать из оснастки certsrv.msc ;
  • для ссылки 2 включена публикация в издаваемых сертификатах;
  • ссылка 3 не меняется, поскольку HTTP сервер находится на сервере CA , и публикация для HTTP сервера выполняется по ссылке 0;
  • добавлена ссылка 4 с публикацией ссылки на OCSP Responder; если не добавить эту ссылку то нет никакого смысла ставить сервис Online Responder.

Итоговая команда для изменений при помощи certutil.exe :

certutil -setreg CA\CACertPublicationURLs "1:C:\Windows\system32\CertSrv\CertEnroll\%1_%3%4.crt\n3:ldap:///CN=%7,CN=AIA,CN=Public Key Services,CN=Services,%6%11\n2:http://%1/CertEnroll/%1_%3%4.crt\n0:file://%1/CertEnroll/%1_%3%4.crt\n32:http://%1/ocsp"

Она же, но в случае выполнения из командного файла:

Чеклист

Название Название параметра в certutil Значение по-умолчанию Выбранное значение
Имя CA YourName Root Certification Authority
Тип CA
Срок действия сертификата CA 5 Years 10 Years
Срок действия издаваемых сертификатов
Время действия издаваемых сертификатов CA\ValidityPeriodUnits 2
Единица измерения срока действия издаваемых сертификатов CA\ValidityPeriod Years
Срок действия Base CRL
Период достоверности Base CRL CA\CRLPeriodUnits 1
Единица измерения периода достоверности Base CRL CA\CRLPeriod Weeks
Срок действия Delta CRL
Период достоверности Delta CRL CA\CRLDeltaPeriodUnits 1
Единица измерения периода достоверности Delta CRL CA\CRLDeltaPeriod Days
Перекрытие периода действия Base CRL
Время до истечения срока действия текущего основного CRL , за которое будет публиковаться новый основной CRL . CA\CRLOverlapUnits 0 24
Единица измерения этого времени для основного CRL
(Hours|Minutes)
CA\CRLOverlapPeriod Hours Hours
Перекрытие периода действия Delta CRL
Время до истечения срока действия текущего инкрементального (если используется) CRL , за которое будет публиковаться новый инкрементальный CRL
(максимум 12 часов)
CA\CRLDeltaOverlapUnits 0 12
Единица измерения этого времени для инкрементального CRL
(Hours|Minutes)
CA\CRLDeltaPeriodPeriod Minutes Hours
Использовать OCSP Yes
CDP extension CA\CRLPublicationURLs File, LDAP File, LDAP , HTTP
AIA extension CA\CACertPublicationURLs File, LDAP File, LDAP , HTTP, OCSP

Конфигурационный скрипт для Certification Authority

До установки роли AD CS необходимо создать конфигурационный скрипт, который выполнит послеустановочную настройку CA на основании выбранных параметров. Ниже следует пример такого скрипта:

CAScript.cmd

:: CDP
certutil -setreg CA\CRLPublicationURLs "65:C:\Windows\system32\CertSrv\CertEnroll\%%3%%8%%9.crl\n79:ldap:///CN=%%7%%8,CN=%%2,CN=CDP,CN=Public Key Services,CN=Services,%%6%%10\n6:http://%%1/CertEnroll/%%3%%8%%9.crl\n0:file://%%1/CertEnroll/%%3%%8%%9.crl"
:: AIA
certutil -setreg CA\CACertPublicationURLs "1:C:\Windows\system32\CertSrv\CertEnroll\%%1_%%3%%4.crt\n3:ldap:///CN=%%7,CN=AIA,CN=Public Key Services,CN=Services,%%6%%11\n2:http://%%1/CertEnroll/%%1_%%3%%4.crt\n0:file://%%1/CertEnroll/%%1_%%3%%4.crt\n32:http://%%1/ocsp"
:: В случае использования роли OCSP , при обновлении сертификата CA могут быть
:: проблемы с проверкой подлинности сертификатов. Чтобы устранить эту проблему
:: используется:
certutil –setreg CA\UseDefinedCACertInRequest 1
:: Включаем наследование Issuer Statement в издаваемых сертификатах
certutil -setreg Policy\EnableRequestExtensionList +"2.5.29.32"
:: Задаём срок действия издаваемых сертификатов
::certutil -setreg CA\ValidityPeriodUnits 2
::certutil -setreg CA\ValidityPeriod "Years"
:: Задаём параметры публикации CRL
::certutil -setreg CA\CRLPeriodUnits 1
::certutil -setreg CA\CRLPeriod "Weeks"
::certutil -setreg CA\CRLDeltaPeriodUnits 1
::certutil -setreg CA\CRLDeltaPeriod "Days"
:: Меняем параметры CRL Overlap
certutil -setreg CA\CRLOverlapUnits 24
certutil -setreg CA\CRLOverlapPeriod "Hours"
certutil –setreg CA\CRLDeltaOverlapUnits 12
certutil –setreg CA\CRLDeltaOverlapPeriod "Hours"
:: включаем полный аудит для сервера CA
certutil -setreg CA\AuditFilter 127
:: Перезапускаем сервис CA
net stop certsvc && net start certsvc
:: Публикуем новый CRL в новую локацию.
certutil -CRL

CRL или CAC - списки SSL-сертификатов, отозванных центром выдачи (CA). На 2017 год происходит отказ от использования CRL (САС) в пользу OCSP (Онлайн Протокол Состояния Сертификата).

SSL обеспечивает защищённое HTTPS-соединение с сайтом, но существуют угрозы безопасности даже при действующем сертификате. Самая распространённая – секретный ключ скомпрометирован. Передача данных становится небезопасна. Чтобы номера кредитных карт и пароли пользователей не попали к мошенникам, сертификат нужно отозвать.

Основные причины аннулирования SSL:

  • ключ утерян/украден или скомпрометирован
  • неверно указано название компании или другие данные
  • сайт прекратил работу
  • сменился владелец ресурса
  • выдавший сертификат Certification Authority скомпрометирован

Как работают списки CRL?

Список аннулированных сертификатов публикует Certificate Authority (CA), выдавший сертификат:

1) Владелец домена или посетитель сайта, заметивший проблему, обращается в CA и просит аннулировать действующий SSL.

2) CA заносит уникальный серийный номер сертификата в список CAC, который:

  • защищён цифровой подписью центра - нельзя изменить
  • обновляется минимум раз в сутки - всегда актуален

3) Каждый раз при соединении с ресурсом браузер посетителя проверяет, аннулирован ли SSL-сертификат. Смотрит в загруженных списках CRL или по протоколу OCSP - через запрос к CA. Если находит сертификат в списке CRL или получает от CA ответ, что сертификат отозван - показывает предупреждение об ошибке.

Не все браузеры загружают списки CAC и пользуются OCSP

Firefox проверяет статус только для сертификатов с расширенной проверкой EV. Пользователи этого браузера не узнают об отзыве SSL DV и OV. Так же как и мобильные пользователи Safari в iOS. Chrome определяет статус сертификата для Windows, но не для Linux и Android.

Internet Explorer и Opera - самые безопасные в этом отношении браузеры. Они используют OCSP и CRL в зависимости от того, что предлагает CA.

Аннулированный сертификат нельзя восстановить , только купить новый. Берегите секретный ключ - его утеря или компрометация чаще всего приводит к отзыву SSL-сертификата.


Top