Windows 10 хранилище сертификатов: Где хранятся сертификаты в windows системах

Содержание

Экспорт и импорт сертификата Windows

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов рунета Pyatilistnik.org. В прошлый раз мы с вами успешно настроили сеть на CentOS 7.6, двигаемся вперед. В сегодняшней публикации я вам хочу продемонстрировать, как вы можете выполнить экспорт сертификата или импорт сертификата из хранилища Windows. Уверен, что вы сами с легкостью можете найти кучу разных сценариев при которых вы можете использовать мою инструкцию.

Примеры сценариев при импорте и экспорте сертификата

Если вы мой постоянный читатель, то вам уже должны быть знакомы понятие SSL сертификата, его виды и назначение. Сейчас уже сложно себе представить работу юридических лиц, ИП и обычных граждан без сертификатов и ЭЦП. Многие программы используют их для шифрования трафика, например при документообороте или при доступе к сервису, очень частый пример, это кабинет клиент-банка.

В большинстве случаев у людей на компьютере установлена операционная система Windows, она не идеальна и бывают частые случаи ее выхода из строя. При таком раскладе у вас легко могла возникать ситуация по восстановлению вашего сертификата из хранилища Windows, или при обновлении вашего компьютера на более новый, где так же производили перенос сертификатов, я приводил такой пример для КриптоПРО. Переходим к практике.

Импорт сертификата в Windows

Ранее я вам рассказывал, где в операционной системе Windows хранятся сертификаты и вы помните, что там есть два глобальных контейнера:

  1. Первый, это для компьютера
  2. Второй для пользователя

Я в своем примере буду импортировать сертификат в раздел локального компьютера, в личное расположение. И так у меня есть Wildcard сертификат имеющий формат PFX архива. Существует два метода импорта сертификата в операционных системах Windows:

  1. Через графический мастер импорта сертификатов
  2. Через использование утилиты командной строки certutil

Давайте начнем с самого простого метода, через графический интерфейс. У меня есть файл pyatilistnik.

pfx. Я щелкаю по нему двойным кликом и запускаю мастер импорта сертификатов.

Я указываю, что буду копировать сертификат в хранилище локального компьютера, нажимаю далее.

Мастер импорта сертификата попытается удостовериться, какой файл вы будите копировать, поддерживаются форматы PFX, P12, p7b и SST.

На следующем этапе вы указываете пароль от данного сертификата, при желании можете поставить галку «Пометить этот ключ как экспортируемый, что позволит сохранить резервную копию ключа и перемещать его». Данная галка полезна при использовании сертификата их реестра, ну и потом можно будет его при необходимости перенести, но это МЕНЕЕ БЕЗОПАСНО, не не смертельно если есть пароль.

Далее вы выбираете куда вы будите помещать сертификат при импорте, я выберу ручное помещение в личное хранилище.

Нажимаем далее.

Завершаем мастер импорта сертификатов.

В результате импортирование сертификата успешно выполнено.

Давайте удостоверимся, что у вас появился ваш сертификат, тут вы можете воспользоваться оснасткой mmc «сертификаты» или же утилитой certutil. Я покажу оба варианта, откройте командную строку или оболочку PowerShell и выполните:

В итоге у вас будет список всех ваших сертификатов, если знаете его CN, то можете отфильтровать по findstr. Второй вариант, это в окне выполнить открыть mmc и добавить там оснастку «Сертификаты» (Подробнее по ссылке выше про mmc).

В контейнере «Личное — Сертификаты» я вижу свой Wildcard SSL сертификат, и по значку я вижу, что в нем есть закрытый ключ. Я его удалю, чтобы импортировать его с помощью certutil.

Для импорта сертификата вам нужно через команду cd перейти в каталог, где хранится pfx архив. В моем примере, это каталог C:\Temp\wildcard.

Далее импортируем наш сертификат. пишем команду:

certutil -importPFX -p «12345678» my pyatilistnik.pfx

Где -p, это пароль, а pyatilistnik. pfx имя файла.

Все с копированием сертификата в ваше локальное хранилище мы разобрались, переходим к экспорту.

Экспорт сертификата Windows

Давайте теперь проделаем процедуру обратного порядка. Первым делом я произведу экспорт сертификата из графического интерфейса. В оснастке «Сертификаты» найдите нужный вам. Щелкните по нему правым кликом и выберите «Все задачи — Экспорт’.

У вас откроется окно мастера экспорта сертификатов, нажимаем далее.

Если есть возможно и закрытый ключ экспортируемый, то можете выставить режим «Да, экспортировать закрытый ключ».

Вам будет предложено выбрать формат выгрузки, тут могут быть расширения cer DER, cer Base-64, p7b, PFX. Так как у меня сертификат Wildcard, то я могу выгрузить в «Файл обмена личной информацией -PKCS # 12(.PFX)». Если вы планируете после экспорта удалить из личного хранилища ваш сертификат, то можете тут выставить соответствующую галку. Так же может выгрузить все расширения, после чего нажимаем далее.

Задаем обязательный пароль два раза, лучше сразу задавать стойкий пароль.

В следующем окне мастера по экспорту сертификатов, вы задаете его имя и где он будет сохранен.

Нажимаем далее.

Завершаем процедуру экспорта pfx архива из нашего хранилища сертификатов.

Экспорт успешно выполнен.

Теперь давайте произведем экспорт с помощью утилиты certutil. Перед тем, как это сделать, нам необходимо вычислить серийный номер сертификата.Для этого выполните команду:

Находим поле «Серийный номер» у нужного сертификата и копируем его.

Далее пишем команду для экспорта сертификата;

certutil -exportPFX -p «12345678» my 790000fa279f2bd96421c6e2bc00010000fa27 export-cert-2.pfx

Все успешно отработало.

На выходе я получил файл export-cert-2.pfx. Открыть архив с сертификатом вы легко сможете через утилиту keytool или Key Store Explorer.

На этом у меня все, мы с вами разобрали алгоритм и методы по импортированию и экспортированию сертификатов в операционной системе Windows.

остались вопросы или пожелания, то я жду их в комментариях. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

Перенос сертификатов КриптоПРО на другой компьютер, за минуту

Добрый день! Уважаемые читатели и гости крупнейшего IP блога России pyatilistnik.org. В прошлый раз я вам рассказал, о том, как установить сертификат в реестр Windows . Сегодня я вам расскажу, каким образом вы можете выполнить перенос сертификата на другой компьютер, это очень частая и жизненная ситуация с которой сталкиваются многие системные администраторы. Захотелось с вами поделиться опытом, о массовом переносе контейнеров с закрытыми ключами, находящимися в области реестра Windows. Использовать мы будем как КриптоПРО, так и встроенные механизмы. Уверен будет интересно.

Когда нужно переносить сертификаты в другое место?

И так давайте рассмотрим по каким причинам у вас может появиться необходимость в копировании ваших ЭЦП в другое место.

  1. На текущем физическом компьютере начинает умирать жесткий диск или SSD накопитель (Как проверить жизненные показатели жесткого диска), очень частая история и жизненная, когда люди теряли все свои данные, из-за банальной жадности в покупке нового оборудования и элементарного незнания принципов резервного копирования.
  2. У вас производится модернизация оборудования, его улучшение и вам нужно перенести все сертификаты с закрытыми ключами на другую систему
  3. Вы создали отдельный сервер, в виде виртуальной машины, где будут находится все ваши сертификаты и с ними смогут работать все необходимые сотрудники, терминал для бухгалтерии. Простой пример СБИС, и когда у вас 10-20 организаций.

Как видите предпосылок и вариантов переноса сертификатов из реестра на другой компьютер, предостаточно.

Какие есть варианты по копированию контейнеров закрытых ключей?

Перенос сертификатов в виде пошаговой инструкции

Первые два пункта я описывать тут не стану, так как я уже это подробно рассказывал, посмотрите по ссылкам. Я расскажу, об остальных методах и начнем мы с классического КриптоПРО.

Данный метод подойдет для тех ситуаций, когда у вас один или 2 сертификата (ЭЦП). Если же их несколько десятков, а это не такая уж и редкость, то такой путь вам не подходит, и там придется выбирать 4-й метод.

Важное замечание. Я буду переносить

контейнеры закрытого ключа, которые хранятся в реестре. Если вы храните их только на токене, то переносить контейнеры вам не надо, только сертификаты

Копирование закрытого ключа из КриптоПро

Это самый простой способ, и будет актуальным при небольшом количестве контейнеров с закрытыми ключами. Чтобы выполнить перенос сертификатов из реестра, откройте ваш КриптоПРО, вкладка «Сервис», нажимаем кнопку «Сервис», далее через кнопку «Обзор», откройте «Выбор ключевого контейнера» и укажите, какой сертификат вы будите переносить. В моем примере это контейнер «Копия сертификата в реестре (Семин Иван)».

Нажимаем «Далее», вас попросят задать новое имя контейнера с закрытым ключом, введите понятное для себя, для удобства.

У вас откроется окно с выбором носителей, вы можете выбрать либо токен, либо флешку для переноса на другое место. У меня это внешний жесткий диск Z:\.

Задаем обязательно пароль, с точки зрения безопасности, так как файлы в таком виде просто скомпрометировать.

Все, на выходе я получил папку со случайным названием и набором ключей в формате key.

Если вы пытаетесь копировать сертификат с токена, то в ряде случаев у вас может появиться ошибка: Ошибка копирования контейнера. У вас нет разрешений на экспорт ключа, потому что при создании ключа не был установлен соответствующий флаг. Ошибка 0x8009000B (-2146893813) Ключ не может быть использован в указанном состоянии.

Связана такая ситуация, что в целях псевдобезопасности, удостоверяющие центры выпускают закрытые ключи без возможности экспорта, и таким образом увеличивают свою прибыль, так как в случае утери или поломки токена, вам придется его перевыпускать, а так как экспорт запрещен, то бэкапа вы сделать не сможете.

Если вы получили ошибку копирования контейнера. У вас нет разрешений на экспорт ключа, то метод с КРиптоПРО вам не поможет

Перенос сертификатов из реестра без КриптоПРО

Существуют методы экспортировать закрытый ключ и без изспользования утилиты КриптоПРО. Представим себе ситуацию, что у вас на него кончилась лицензия и вы не успели ее купить. Вам нужно сдать отчетность в СБИС. Вы развернули CryptoPRO на другом компьютере, так как он позволяет 3 месяца бесплатного использования, осталось для СБИС выполнить перенос сертификатов, которые у вас в реестре Windows.

У нас два варианта:

  • Использование оснастки mmc-Сертификаты пользователя.
  • Использование Internet Explore

Как открыть оснастку сертификаты я уже подробно рассказывал, посмотрите. Откройте там контейнер «Личное — Сертификаты». Если у вас в контейнере не один сертификат с одинаковым именем, такое может быть, то откройте сертификат в оснастке mmc и в КриптоПРО и сравните серийные номера сертификата.

В Internet Explore, откройте «Свойства браузера — Содержание — Сертификаты»

Теперь нам необходимо его экспортировать, в оснастке «Сертификаты», через правый клик, это можно сделать, в Internet Explorer, сразу видно кнопку, экспорт.

У вас откроется мастер переноса сертификатов, на первом шаге, просто нажимаем далее. После чего вас спросят, что вы хотите экспортировать, выбираем пункт «да, экспортировать закрытый ключ вместе с сертификатом»

Если ваш закрытый ключ запрещено экспортировать, то эта кнопка будет не активна, и можете сразу закрывать данный метод и переходить к следующему.

Следующим этапом в мастере экспорта сертификатов, вам необходимо выбрать формат выгрузки, это будет PFX архив.

Далее вы задаете обязательно пароль и указываете имя и место, где будите сохранять ваш переносимый контейнер с зарытым ключом в формате pfx.

 

Мастер экспорта сертификатов, выведет вам сводные данные, нажимаем «Готово».

Отрываем локацию, куда вы его выгрузили, и найдите свой pfx архив.

Теперь вам нужно еще выгрузить открытый ключ в формате cer, для этого так же зайдите в мастер экспорта, но на этот раз выберите «Нет, не экспортировать закрытый ключ».

Выберите формат файла «X.509 (.CER) в кодировке DEP», задайте ему имя и место сохранения. На выходе у вас появятся два файла.

Одни открытый ключ в формате cer и закрытый ключ в формате pfx. Этого набора вам будет достаточно, чтобы перенести сертификаты СБИС, Контура и остальных программ на другой компьютер.

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

На втором шаге проверяем импортируемый сертификат.

Указываем пароль, который задавали при выгрузке.

Оставляем автоматический выбор хранилища на основе типа сертификатов.

Готово. Со вторым файлом то же самое. После чего у вас будут перенесены нужные вам ключи и сам сертификат, можно работать.


Массовый перенос ключей и сертификатов CryptoPro на другой компьютер

Выше описанные методы хороши, когда у вас один или 5 ключиков в реестре, а как быть если их десятки. Помню лет 5 назад, когда я еще был младшим администратором, то я очень часто устанавливал электронные цифровые подписи главбуху, так как она работала в СБИС++ и сдавала там постоянно отчетность по огромному количеству организаций, по типу рога и копыта. Держать кучу токенов было не вариант, и для таких вещей у нее все хранилось в реестре и копия сертификатов была на флешке в сейфе. Флешку потом потеряли, встал вопрос сделать резервную копию всего и плюс обновить систему, в виду нового компьютера, на операционной системе Windows 8.1. ЭЦП было штук 50, а так как я ценю свое время, то и искал методы, выполнить это быстрее, к счастью я его нашел.

Заключался метод переноса сертификатов из реестра, в выгрузке веток и подмене SID значения, но обо всем по порядку. О том, как посмотреть SID пользователя и что это такое я рассказывал.

Открываете командную строку cmd и вводите команду:

Вот это S-1-5-21-551888299-3078463796-888888888-46162 и есть SID, вашей учетной записи. Теперь когда вы его знаете, то вам нужно выгрузить ваши закрытые ключи из реестра Windows. Для этого откройте вот такую ветку:

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\Номер вашего SID, который мы узнали\Keys

В контейнере Keys, вы найдете все ваши закрытые ключи от ЭЦП. С правой стороны вы увидите файлы:
* header.key
* masks.key
* masks2.key
* name.key
* primary.key
* primary2.key

Щелкаем правым кликом по контейнеру Keys и экспортируем его.

Сохраняем нашу ветку реестра с контейнерами закрытых ключей. Далее нам нужно скопировать открытые ключи, которые лежат по пути:

C:\Users\имя вашего пользователя\AppData\Roaming\Microsoft\SystemCertificates\My

Не забывайте только подставить своего пользователя, эта папка может быть скрытой, поэтому включите скрытые папки и файлы в вашей ОС. Все содержимое этой папки вам нужно перенести на другой компьютер, только уже в папку другого, нужного пользователя.

Как только вы поместили на новом компьютере папку Key, вы можете перенести реестровую выгрузку. Сохраненный файл в формате reg, вы должны открыть в любом текстовом редакторе.

Как я показывал выше, определите SID нового пользователя, скопируйте его полностью и замените им значение в файле reg, я отметил это стрелками.

SID начинается с S-1 и так далее

Все сохраняйте файл и запускайте его, у вас будет начат перенос сертификатов (закрытых ключей), подтверждаем действие.

Как видите импорт успешно завершен. Все теперь ваши закрытые и открытые ключи на месте и вы можете работать с вашими ЭЦП, и можно считать, что перенос сертификатов с одного компьютера на другой в массовом масштабе, осуществлен успешно. Если остались вопросы, то жду их в комментариях.

Пошаговое руководство. Просмотр сертификатов с помощью оснастки MMC — WCF

В этой статье

Использование для развертывания сертификатов доверенного центра корневой сертификации на устройствах.Use to deploy Root Certificate Authority (CA) certificates to devices. Следующий список описывает назначение каждой группы параметров.The following list describes the purpose of each setting group.

  • В CACertificates указывается сертификат, который будет добавлен в хранилище промежуточного ЦС на целевом устройстве.In CACertificates, you specify a certificate that will be added to the Intermediate CA store on the target device.
  • В ClientCertificates указывается сертификат, который будет добавлен в личное хранилище на целевом устройстве и предоставляется (пароль, keylocation) (а также указывается, можно ли экспортировать сертификат). In ClientCertificates, you specify a certificate that will be added to the Personal store on the target device, and provide (password, keylocation), (and configure whether the certificate can be exported).
  • В RootCertificates указывается сертификат, который будет добавлен в хранилище доверенного корневого ЦС на целевом устройстве.In RootCertificates, you specify a certificate that will be added to the Trusted Root CA store on the target device.
  • В TrustedPeopleCertificates указывается сертификат, который будет добавлен в хранилище «Доверенные лица» на целевом устройстве.In TrustedPeopleCertificates, you specify a certificate that will be added to the Trusted People store on the target device.
  • В TrustedProvisionersуказывается сертификат, который позволяет устройствам автоматически доверять пакетам от указанного издателя.In TrustedProvisioners, you specify a certificate which allows devices to automatically trust packages from the specified publisher.

Область примененияApplies to

Группы параметровSetting groups Выпуски для настольных ПКDesktop editions Выпуски для мобильных устройствMobile editions Surface HubSurface Hub HoloLensHoloLens IoT БазоваяIoT Core
Все группы параметровAll setting groups XX XX XX XX XX

CACertificatesCACertificates

  1. В разделе Доступные настройки выберите пункт CACertificates, введите понятное имя для сертификата и нажмите кнопку Добавить. In Available customizations, select CACertificates, enter a friendly name for the certificate, and then click Add.
  2. В разделе Доступные настройки выберите имя, которое вы только что задали.In Available customizations, select the name that you just created.
  3. В CertificatePath найдите этот сертификат или введите путь к нему.In CertificatePath, browse to or enter the path to the certificate.

ClientCertificatesClientCertificates

  1. В разделе Доступные настройки выберите пункт ClientCertificates, введите понятное имя для сертификата и нажмите кнопку Добавить.In Available customizations, select ClientCertificates, enter a friendly name for the certificate, and then click Add.
  2. В разделе Доступные настройки выберите имя, которое вы только что задали. In Available customizations, select the name that you just created. В следующей таблице приведено описание параметров, которые можно настроить.The following table describes the settings you can configure. Параметры, выделенные жирным шрифтом, являются обязательными.Settings in bold are required.
ПараметрSetting ЗначениеValue ОписаниеDescription
CertificatePasswordCertificatePassword
CertificatePathCertificatePath Добавляет выбранный сертификат в личное хранилище на целевом устройстве.Adds the selected certificate to the Personal store on the target device.
ExportCertificateExportCertificate True или falseTrue or false Установите значение True чтобы разрешить экспорт сертификата.Set to True to allow certificate export.
KeyLocationKeyLocation — Только TPM- TPM only— TPM с исправлением программных ошибок- TPM with software fallback— Только программное обеспечение- Software only

RootCertificatesRootCertificates

  1. В разделе Доступные настройки выберите пункт RootCertificates, введите понятное имя для сертификата и нажмите кнопку Добавить.In Available customizations, select RootCertificates, enter a friendly name for the certificate, and then click Add.
  2. В разделе Доступные настройки выберите имя, которое вы только что задали.In Available customizations, select the name that you just created.
  3. В CertificatePath найдите этот сертификат или введите путь к нему.In CertificatePath, browse to or enter the path to the certificate.

TrustedPeopleCertificatesTrustedPeopleCertificates

  1. В разделе Доступные настройки выберите пункт TrustedPeopleCertificates, введите понятное имя для сертификата и нажмите кнопку Добавить. In Available customizations, select TrustedPeopleCertificates, enter a friendly name for the certificate, and then click Add.
  2. В разделе Доступные настройки выберите имя, которое вы только что задали.In Available customizations, select the name that you just created.
  3. В TrustedCertificate найдите этот сертификат или введите путь к нему.In TrustedCertificate, browse to or enter the path to the certificate.

TrustedProvisionersTrustedProvisioners

  1. В разделе Доступные настройки выберите пункт TrustedPprovisioners, введите CertificateHash и нажмите кнопку Добавить.In Available customizations, select TrustedPprovisioners, enter a CertificateHash, and then click Add.
  2. В разделе Доступные настройки выберите имя, которое вы только что задали. In Available customizations, select the name that you just created.
  3. В TrustedProvisioner найдите этот сертификат или введите путь к нему.In TrustedProvisioner, browse to or enter the path to the certificate.

Требования к сертификатам и их перечисление (Windows 10) — Microsoft 365 Security

  • Чтение занимает 18 мин

В этой статье

Применимо к: Windows 10, Windows Server 2016Applies To: Windows 10, Windows Server 2016

В этой статье рассказывается о том, как управлять сертификатами и использовать их для входа с помощью смарт-карты, для разработчиков информационных технологий и смарт-карт. This topic for the IT professional and smart card developers describes how certificates are managed and used for smart card sign-in.

При вставке смарт-карты выполняются описанные ниже действия.When a smart card is inserted, the following steps are performed.

Note Примечание . Если не указано иное, все операции выполняются без уведомления (метод шифрования \ _SILENT передается в CryptAcquireContext).Note  Unless otherwise mentioned, all operations are performed silently (CRYPT_SILENT is passed to CryptAcquireContext).

  1. База данных диспетчера ресурсов смарт-карт выполняет поиск поставщика услуг криптографии (CSP) смарт-карты.The smart card resource manager database searches for the smart card’s cryptographic service provider (CSP).

  2. Полное имя контейнера создается с помощью имени устройства чтения смарт-карт и передается поставщику служб шифрования.A qualified container name is constructed by using the smart card reader name, and it is passed to the CSP. Формат: \ \ \ . \ \ имя<> устройства чтенияThe format is \\.\<Reader name>\

  3. CryptAcquireContext вызывается, чтобы получить контекст для контейнера по умолчанию.CryptAcquireContext is called to retrieve a context to the default container. Если произошел сбой, смарт-карта не будет использоваться для входа с помощью смарт-карты.If a failure occurs, the smart card will be unusable for smart card sign-in.

  4. Имя контейнера извлекается с помощью параметра PP \ _CONTAINER с CryptGetProvParam.The name of the container is retrieved by using the PP_CONTAINER parameter with CryptGetProvParam.

  5. С помощью контекста, полученного в действии 3, поставщик служб шифрования запрашивается для параметра PP \ _USER \ _CERTSTORE (добавлен в Windows Vista).Using the context acquired in Step 3, the CSP is queried for the PP_USER_CERTSTORE parameter (added in Windows Vista). Дополнительные сведения можно найти в разделе Архитектура смарт-карт. For more information, see Smart Card Architecture. Если операция выполнена успешно, возвращается имя хранилища сертификатов, и поток программы переходит к шагу 8.If the operation is successful, the name of a certificate store is returned, and the program flow skips to Step 8.

  6. Если при выполнении действия 5 происходит сбой, контекст контейнера по умолчанию из шага 3 запрашивается для ключа «по _KEYEXCHANGE».If the operation in Step 5 fails, the default container context from Step 3 is queried for the AT_KEYEXCHANGE key.

  7. Затем сертификат запрашивается из контекста ключа с помощью КЛЮЧЕВого _CERTIFICATE.The certificate is then queried from the key context by using KP_CERTIFICATE. Сертификат добавляется в хранилище сертификатов в памяти.The certificate is added to an in-memory certificate store.

  8. Для каждого сертификата в хранилище сертификатов на этапе 5 или на шаге 7 выполняются следующие проверки.For each certificate in the certificate store from Step 5 or Step 7, the following checks are performed:

    1. Сертификат должен быть допустимым в зависимости от системных часов компьютера (не просроченных или действительных в будущем). The certificate must be valid, based on the computer system clock (not expired or valid with a future date).

    2. Сертификат не должен находиться в части «на \ _SIGNATURE» в контейнере.The certificate must not be in the AT_SIGNATURE part of a container.

    3. У сертификата должно быть действительное имя участника-пользователя (UPN).The certificate must have a valid user principal name (UPN).

    4. Сертификат должен иметь использование ключа цифровой подписи.The certificate must have the digital signature key usage.

    5. Сертификат должен содержать EKU для входа в систему с помощью смарт-карты.The certificate must have the smart card logon EKU.

    Любой сертификат, удовлетворяющий этим требованиям, отображается для пользователя с именем участника (или адресом электронной почты или субъектом) в зависимости от наличия расширений сертификата.Any certificate that meets these requirements is displayed to the user with the certificate’s UPN (or e-mail address or subject, depending on the presence of the certificate extensions).

    Обратите внимание  , что эти требования те же, что и в Windows Server 2003, но они выполняются до того, как пользователь введет PIN-код.Note  These requirements are the same as those in Windows Server 2003, but they are performed before the user enters the PIN. Многие из них можно переопределить с помощью параметров групповой политики.You can override many of them by using Group Policy settings.

  9. После этого процесс выбирает сертификат и вводится PIN-код.The process then chooses a certificate, and the PIN is entered.

  10. Программа LogonUI. exe упаковывает данные и отправляет ее в LSASS. exe для обработки попытки входа.LogonUI.exe packages the information and sends it to Lsass.exe to process the sign-in attempt.

  11. В случае успеха программа LogonUI. exe закрывается.If successful, LogonUI.exe closes. Это приведет к тому, что контекст, полученный в действии 3, будет выпущен.This causes the context acquired in Step 3 to be released.

Сведения о поддержке сертификата для обеспечения совместимостиAbout Certificate support for compatibility

Несмотря на то, что в версиях Windows, более ранних, чем Windows Vista, есть поддержка смарт-карт, типы сертификатов, которые могут содержать смарт-карты, ограничены.Although versions of Windows earlier than Windows Vista include support for smart cards, the types of certificates that smart cards can contain are limited. Ниже указаны ограничения.The limitations are:

  • Каждый сертификат должен иметь имя участника-пользователя (UPN) и идентификатор объекта для входа со смарт-картой (также известный как OID) в поле атрибута EKU (Key Usage).Each certificate must have a user principal name (UPN) and the smart card sign-in object identifier (also known as OID) in the enhanced key usage (EKU) attribute field. Существует параметр групповой политики, позволяющий использовать сертификаты ECC для входа и проверки подлинности, чтобы сделать его необязательным. There is a Group Policy setting, Allow ECC certificates to be used for logon and authentication, to make the EKU optional.

  • Каждый сертификат должен храниться в части «_KEYEXCHANGE по умолчанию» контейнера CryptoAPI, а не по умолчанию в контейнерах CryptoAPI не поддерживается.Each certificate must be stored in the AT_KEYEXCHANGE portion of the default CryptoAPI container, and non-default CryptoAPI containers are not supported.

В таблице ниже перечислены поддерживаемые сертификаты в более ранних версиях операционной системы Windows.The following table lists the certificate support in older Windows operating system versions.

Операционная системаOperating system Поддержка сертификатаCertificate support
Windows Server 2008 R2 и Windows 7Windows Server 2008 R2 and Windows 7 Поддержка входа с помощью смарт-карты с использованием сертификатов на основе ECC. Support for smart card sign-in with ECC-based certificates. Вход с помощью смарт-карты ECC включен через групповую политику.ECC smart card sign-in is enabled through Group Policy.

ECDH \ _P256ECDH_P256
ECDHECDH
Кривая P-256 от FIPS 186-2Curve P-256 from FIPS 186-2

ECDSA \ _P256ECDSA_P256
ECDSAECDSA
Кривая P-256 от FIPS 186-2Curve P-256 from FIPS 186-2

ECDH \ _P384ECDH_P384
ECDHECDH
Кривая P-384 от FIPS 186-2Curve P-384 from FIPS 186-2

ECDH \ _P521ECDH_P521
ECDHECDH
Кривая P-521 от FIPS 186-2Curve P-521 from FIPS 186-2

ECDSA \ _P256ECDSA_P256
ECDHECDH
Кривая P-256 от FIPS 186-2Curve P-256 from FIPS 186-2

ECDSA \ _P384ECDSA_P384
ECDSAECDSA
Кривая P-384 от FIPS 186-2Curve P-384 from FIPS 186-2

ECDSA \ _P521ECDSA_P521
ECDSAECDSA
Кривая P-384 от FIPS 186-2Curve P-384 from FIPS 186-2

Windows Server 2008 и Windows VistaWindows Server 2008 and Windows Vista Действительные сертификаты перечисляются и отображаются на всех смарт-картах и предоставляются пользователю. Valid certificates are enumerated and displayed from all smart cards and presented to the user.
Ключи больше не ограничиваются контейнером по умолчанию, а также могут быть выбраны сертификаты в разных контейнерах.Keys are no longer restricted to the default container, and certificates in different containers can be chosen.
Сертификаты на основе шифрования на эллиптических кривых (ECC) не поддерживаются при входе в учетную запись с помощью смарт-картыElliptic curve cryptography (ECC)-based certificates are not supported for smart card sign-in

Поток входа со смарт-картой в WindowsSmart card sign-in flow in Windows

Большинство проблем при проверке подлинности возникают из-за изменения поведения сеанса.Most issues during authentication occur because of session behavior changes. При возникновении изменений локальная система безопасности (LSA) не получает контекст сеанса. для обработки изменения сеанса вместо него используется поставщик служб шифрования. When changes occur, the Local Security Authority (LSA) does not reacquire the session context; it relies instead on the Cryptographic Service Provider to handle the session change.

В поддерживаемых версиях Windows, указанных в списке применимые к в начале этой статьи, клиентские сертификаты, не содержащие имя участника-пользователя в поле subjectAltName (SAN) сертификата, могут быть включены для входа в систему, которая поддерживает более широкий спектр сертификатов и поддерживает несколько сертификатов для входа в одну и ту же карточку.In the supported versions of Windows designated in the Applies To list at the beginning of this topic, client certificates that do not contain a UPN in the subjectAltName (SAN) field of the certificate can be enabled for sign-in, which supports a wider variety of certificates and supports multiple sign-in certificates on the same card.

Поддержка нескольких сертификатов на одной карте включена по умолчанию. Support for multiple certificates on the same card is enabled by default. Новые типы сертификатов должны быть включены с помощью групповой политики.New certificate types must be enabled through Group Policy.

Если включить разрешенные ключи подписей для проверки подлинности поставщика учетных данных, на экране входа в систему будут указаны все сертификаты, доступные на смарт-картах с ключом только для подписи.If you enable the Allow signature keys valid for Logon credential provider policy, any certificates that are available on the smart card with a signature-only key are listed on the sign-in screen. Это позволяет пользователям выбирать способ входа.This allows users to select their sign-in experience. Если политика отключена или не настроена, сертификаты, основанные на подписи с помощью смарт-карты, не отображаются на экране входа.If the policy is disabled or not configured, smart card signature-key-based certificates are not listed on the sign-in screen.

На следующей схеме показано, как вход с помощью смарт-карты работает в поддерживаемых версиях Windows.The following diagram illustrates how smart card sign-in works in the supported versions of Windows.

Процесс входа со смарт-картойSmart card sign-in flow

Ниже описаны действия, которые выполняются при входе в учетную запись с помощью смарт-карты.Following are the steps that are performed during a smart card sign-in:

  1. Winlogon запрашивает учетные данные для входа в пользовательский интерфейс.Winlogon requests the sign-in UI credential information.

  2. Асинхронно, запускается диспетчер ресурсов смарт-карт, и поставщик учетных данных смарт-карты выполняет следующие действия:Asynchronously, smart card resource manager starts, and the smart card credential provider does the following:

    1. Получение сведений об учетных данных (список известных учетных данных или учетных данных, которые обнаружены в Windows) в средстве чтения смарт-карт. Gets credential information (a list of known credentials, or if no credentials exist, the smart card reader information that Windows detected).

    2. Получает список устройств чтения смарт-карт (с помощью API WinSCard) и список смарт-карт, вставленных в каждую из них.Gets a list of smart card readers (by using the WinSCard API) and the list of smart cards inserted in each of them.

    3. Перечисляет каждую карту, чтобы убедиться в наличии сертификата для входа, контролируемого групповой политикой.Enumerates each card to verify that a sign-in certificate that is controlled by Group Policy is present. При наличии сертификата поставщик учетных данных смарт-карт копирует его во временный кэш на компьютере или терминале.If the certificate is present, the smart card credential provider copies it into a temporary, secure cache on the computer or terminal.

    Note  Записи кэша смарт-карты заметок создаются для сертификатов с именем субъекта или с идентификатором ключа субъекта. Note  Smartcard cache entries are created for certificates with a subject name or with a subject key identifier. Если сертификат содержит имя субъекта, оно хранится с индексом, основанным на имени субъекта и издателе сертификата.If the certificate has a subject name, it is stored with an index that is based on the subject name and certificate issuer. Если используется другой сертификат с тем же именем субъекта и издателем сертификата, существующий кэшированный элемент будет заменен.If another certificate with the same subject name and certificate issuer is used, it will replace the existing cached entry. В результате изменения этого поведения после Windows Vista можно использовать условие, если у сертификата нет имени субъекта, он создается с индексом, основанным на идентификаторе ключа субъекта и его издателе сертификата.A change in this behavior after Windows Vista, allows for the condition when the certificate does not have a subject name, the cache is created with an index that is based on the subject key identifier and certificate issuer. Если другой сертификат имеет тот же идентификатор ключа субъекта и его поставщик сертификата, запись кэша заменяется.If another certificate has the same the subject key identifier and certificate issuer, the cache entry is replaced. Если у сертификатов нет ни имени субъекта, ни идентификатора ключа субъекта, то кэшированная запись не создается.When certificates have neither a subject name nor subject key identifier, a cached entry is not created.

    1. Уведомляет пользовательский интерфейс входа в него с новыми учетными данными.Notifies the sign-in UI that it has new credentials.
  3. Пользовательский интерфейс входа запрашивает новые учетные данные от поставщика учетных данных смарт-карты.The sign-in UI requests the new credentials from the smart card credential provider. В качестве ответа поставщик учетных данных с помощью смарт-карты предоставляет каждому сертификату для входа в пользовательский интерфейс входа, и на экране отображаются соответствующие плитки для входа. As a response, the smart card credential provider provides each sign-in certificate to the sign-in UI, and corresponding sign-in tiles are displayed. Пользователь выбирает плитку сертификата для входа с помощью смарт-карты, а Windows отображает диалоговое окно с закреплением.The user selects a smart card-based sign-in certificate tile, and Windows displays a PIN dialog box.

  4. Пользователь введет ПИН-код, а затем нажмите клавишу ВВОД.The user enters the PIN, and then presses ENTER. Поставщик учетных данных смарт-карт шифрует PIN-код.The smart card credential provider encrypts the PIN.

  5. Поставщик учетных данных, находящийся в системе LogonUI, собирает PIN-код.The credential provider that resides in the LogonUI system collects the PIN. В рамках учетных данных для упаковки в поставщике учетных данных смарт-карт данные упаковываются в структуру KERB \ _CERTIFICATE \ _LOGON.As part of packaging credentials in the smart card credential provider, the data is packaged in a KERB_CERTIFICATE_LOGON structure. Основным содержимым структуры KERB \ _CERTIFICATE \ _LOGON — это PIN-код, данные CSP (например, имя устройства чтения и имя контейнера), имя пользователя и доменное имя.The main contents of the KERB_CERTIFICATE_LOGON structure are the smart card PIN, CSP data (such as reader name and container name), user name, and domain name. Имя пользователя требуется, если домен входа не находится в том же лесу, так как он позволяет сопоставлять сертификаты с несколькими учетными записями пользователей.User name is required if the sign-in domain is not in the same forest because it enables a certificate to be mapped to multiple user accounts.

  6. Поставщик учетных данных упаковывает данные (например, зашифрованный ПИН-код, имя контейнера, имя устройства чтения и спецификацию ключа карты) и отправляет его обратно в LogonUI.The credential provider wraps the data (such as the encrypted PIN, container name, reader name, and card key specification) and sends it back to LogonUI.

  7. Winlogon представляет данные из LogonUI в LSA с помощью сведений о пользователях в LSALogonUser.Winlogon presents the data from LogonUI to the LSA with the user information in LSALogonUser.

  8. LSA вызывает пакет проверки подлинности Kerberos (Kerberos SSP) для создания запроса службы проверки подлинности Kerberos (KRB \ _AS \ _REQ), содержащего предварительную проверку подлинности (как указано в RFC 4556: Шифрование с открытым ключом для первоначальной проверки подлинности в Kerberos (PKINIT)).LSA calls the Kerberos authentication package (Kerberos SSP) to create a Kerberos authentication service request (KRB_AS_REQ), which containing a preauthenticator (as specified in RFC 4556: Public Key Cryptography for Initial Authentication in Kerberos (PKINIT)).

    Если проверка подлинности выполняется с использованием сертификата, использующего цифровую подпись, данные предварительной проверки подлинности состоят из общедоступного сертификата пользователя и сертификата с цифровой подписью с соответствующим закрытым ключом.If the authentication is performed by using a certificate that uses a digital signature, the preauthentication data consists of the user’s public certificate and the certificate that is digitally signed with the corresponding private key.
    Если проверка подлинности выполняется с использованием сертификата, использующего шифрование ключей, данные предварительной проверки подлинности состоят из общедоступного сертификата пользователя и сертификата, который шифруется с помощью соответствующего закрытого ключа.If the authentication is performed by using a certificate that uses key encipherment, the preauthentication data consists of the user’s public certificate and the certificate that is encrypted with the corresponding private key.

  9. Для цифровой подписи запроса (в соответствии со спецификацией RFC 4556) для операции с закрытым ключом осуществляется вызов соответствующего CSP.To sign the request digitally (as per RFC 4556), a call is made to the corresponding CSP for a private key operation. Так как в этом случае закрытый ключ хранится на смарт-карте, вызывается подсистема смарт-карт, и необходимая операция завершается.Because the private key in this case is stored in a smart card, the smart card subsystem is called, and the necessary operation is completed. Результат отправляется поставщику поддержки безопасности Kerberos (SSP).The result is sent back to the Kerberos security support provider (SSP).

  10. Поставщик общих служб Kerberos отправляет запрос на проверку подлинности билета на получение билета (TGT) (на RFC 4556) в службу центра распространения ключей (KDC), которая выполняется на контроллере домена.The Kerberos SSP sends an authentication request for a ticket-granting-ticket (TGT) (per RFC 4556) to the Key Distribution Center (KDC) service that runs on a domain controller.

  11. KDC находит объект учетной записи пользователя в доменных службах Active Directory (AD DS), подробно описанный в разделе требования к сертификатам клиента и сопоставления, и использует сертификат пользователя для проверки подписи.The KDC finds the user’s account object in Active Directory Domain Services (AD DS), as detailed in Client certificate requirements and mappings, and uses the user’s certificate to verify the signature.

  12. KDC проверяет сертификат пользователя (время, путь и состояние отзыва), чтобы убедиться, что сертификат предоставлен из надежного источника.The KDC validates the user’s certificate (time, path, and revocation status) to ensure that the certificate is from a trusted source. KDC использует CryptoAPI для создания пути сертификации из сертификата пользователя в сертификат корневого центра сертификации (ЦС), который находится в корневом хранилище на контроллере домена.The KDC uses CryptoAPI to build a certification path from the user’s certificate to a root certification authority (CA) certificate that resides in the root store on the domain controller. Затем центр распространения ключей использует CryptoAPI для проверки цифровой подписи на входе в поля данных предварительной проверки подлинности.The KDC then uses CryptoAPI to verify the digital signature on the signed authenticator that was included in the preauthentication data fields. Контроллер домена проверяет подпись и использует открытый ключ из сертификата пользователя для подтверждения того, что запрос поступил от владельца закрытого ключа, соответствующего открытому ключу.The domain controller verifies the signature and uses the public key from the user’s certificate to prove that the request originated from the owner of the private key that corresponds to the public key. KDC также проверяет, является ли поставщик доверенным и отображается в хранилище сертификатов NTAUTH.The KDC also verifies that the issuer is trusted and appears in the NTAUTH certificate store.

  13. Служба KDC извлекает данные учетной записи пользователя из доменных служб Active Directory.The KDC service retrieves user account information from AD DS. KDC создает TGT, основанный на данных учетной записи пользователя, которые она извлекает из доменных служб Active Directory.The KDC constructs a TGT, which is based on the user account information that it retrieves from AD DS. Поля данных авторизации билета TGT включают идентификатор безопасности пользователя (SID), SID для групп универсального и глобального домена, к которым принадлежит пользователь, и (в многодоменной среде) идентификаторы безопасности для глобальных групп, членом которых является пользователь.The TGT’s authorization data fields include the user’s security identifier (SID), the SIDs for universal and global domain groups to which the user belongs, and (in a multidomain environment) the SIDs for any universal groups of which the user is a member.

  14. Контроллер домена возвращает клиенту TGT как часть KRB \ _AS \ _REP ответа.The domain controller returns the TGT to the client as part of the KRB_AS_REP response.

    Обратите внимание  , что пакет krb \ _AS \ _REP состоит из следующих элементов:Note  The KRB_AS_REP packet consists of:

    • Сертификат атрибута прав доступа (PAC)Privilege attribute certificate (PAC)
    • SID пользователяUser’s SID
    • Идентификаторы безопасности всех групп, членом которых является пользовательSIDs of any groups of which the user is a member
    • Запрос службы предоставления билетов (TGS)A request for ticket-granting service (TGS)
    • Данные предварительной проверки подлинностиPreauthentication data

    TGT шифруется с помощью главного ключа центра распространения ключей, а ключ сеанса шифруется с помощью временного ключа.TGT is encrypted with the master key of the KDC, and the session key is encrypted with a temporary key. Этот временный ключ является производным от RFC 4556.This temporary key is derived based on RFC 4556. При использовании CryptoAPI временный ключ расшифровывается.Using CryptoAPI, the temporary key is decrypted. В процессе расшифровки, если закрытый ключ находится на смарт-карте, вызов осуществляется на подсистему с использованием смарт-карт с помощью указанного поставщика службы криптографии для извлечения сертификата, соответствующего открытому ключу пользователя.As part of the decryption process, if the private key is on a smart card, a call is made to the smart card subsystem by using the specified CSP to extract the certificate corresponding to the user’s public key. (Программные вызовы для сертификата включают CryptAcquireContext, CryptSetProvParam с КОНТАКТом, CryptgetUserKey и CryptGetKeyParam.) После того как временный ключ будет получен, поставщик общих служб (Kerberos) расшифровывает ключ сеанса.(Programmatic calls for the certificate include CryptAcquireContext, CryptSetProvParam with the PIN, CryptgetUserKey, and CryptGetKeyParam.) After the temporary key is obtained, the Kerberos SSP decrypts the session key.

  15. Клиент проверяет ответ от KDC (время, путь и состояние отзыва).The client validates the reply from the KDC (time, path, and revocation status). Сначала проверяется подпись KDC в результате создания пути сертификации из сертификата KDC в доверенный корневой центр сертификации, после чего для проверки сигнатуры ответа используется открытый ключ KDC.It first verifies the KDC’s signature by the construction of a certification path from the KDC’s certificate to a trusted root CA, and then it uses the KDC’s public key to verify the reply signature.

  16. После получения билета TGT клиент получает билет на обслуживание, который используется для входа на локальный компьютер.Now that a TGT has been obtained, the client obtains a service ticket, which is used to sign in to the local computer.

  17. При успешном завершении LSA сохраняет билеты и возвращает сообщение об успешном завершении в LSALogonUser.With success, LSA stores the tickets and returns a success message to LSALogonUser. После того как сообщение будет получено, будет установлен и установлен профиль пользователя для устройства, создано создание экземпляра групповой политики и выполняются другие действия.After this success message is issued, user profile for the device is selected and set, Group Policy refresh is instantiated, and other actions are performed.

  18. После того как профиль пользователя будет загружен, служба распространения сертификации (CertPropSvc) обнаруживает это событие, считывает сертификаты из смарт-карты (в том числе корневые сертификаты) и заполняет их в хранилище сертификатов пользователя (MYSTORE).After the user profile is loaded, the Certification Propagation Service (CertPropSvc) detects this event, reads the certificates from the smart card (including the root certificates), and then populates them into the user’s certificate store (MYSTORE).

  19. CSP для связи диспетчера ресурсов смарт-карт в канале LRPC.CSP to smart card resource manager communication happens on the LRPC Channel.

  20. При успешной проверке подлинности сертификаты передаются в хранилище пользователя асинхронно службой распространения сертификатов (CertPropSvc).On successful authentication, certificates are propagated to the user’s store asynchronously by the Certificate Propagation Service (CertPropSvc).

  21. После того как карта будет удалена, сертификаты во временном безопасном хранилище кэша удаляются.When the card is removed, certificates in the temporary secure cache store are removed. Сертификаты больше не доступны для входа, но остаются в хранилище сертификатов пользователя.The Certificates are no longer available for sign-in, but they remain in the user’s certificate store.

Note Примечание . идентификатор безопасности создается для каждого пользователя или группы на момент создания учетной записи пользователя или группы в локальной базе данных учетных записей безопасности или в доменных службах Active Directory.Note  A SID is created for each user or group at the time a user account or a group account is created within the local security accounts database or within AD DS. SID никогда не меняется, даже если Вы переименовываете учетную запись пользователя или группы.The SID never changes, even if the user or group account is renamed.

Дополнительные сведения о протоколе Kerberos можно найти в разделе Microsoft Kerberos.For more information about the Kerberos protocol, see Microsoft Kerberos.

По умолчанию центр распространения ключей проверяет, что сертификат клиента включает EKU проверки подлинности клиента смарт-карты szOID \ _KP \ _SMARTCARD \ _LOGON.By default, the KDC verifies that the client’s certificate contains the smart card client authentication EKU szOID_KP_SMARTCARD_LOGON. Тем не менее, если этот параметр включен, для сертификатов без параметра групповой политики атрибутов сертификации расширенного использования ключа не требуется использовать EKU для входа в систему.However, if enabled, the Allow certificates with no extended key usage certificate attribute Group Policy setting allows the KDC to not require the SC-LOGON EKU. SC-LOGON для сопоставлений учетных записей, основанных на открытом ключе, не требуется.SC-LOGON EKU is not required for account mappings that are based on the public key.

Сертификат центра распространения ключейKDC certificate

Службы сертификации Active Directory предоставляют три типа шаблонов сертификатов.Active Directory Certificate Services provides three kinds of certificate templates:

  • Контроллер доменаDomain controller

  • Проверка подлинности контроллера доменаDomain controller authentication

  • Проверка подлинности KerberosKerberos authentication

В зависимости от конфигурации контроллера домена один из этих типов сертификатов отправляется в составе пакета AS _REP.Depending on the configuration of the domain controller, one of these types of certificates is sent as a part of the AS_REP packet.

Требования к сертификатам клиентов и сопоставленияClient certificate requirements and mappings

Требования к сертификатам перечислены по версиям операционной системы Windows.Certificate requirements are listed by versions of the Windows operating system. Сопоставление сертификатов. описывает, каким образом данные из сертификата сопоставлены с учетной записью пользователя.Certificate mapping describes how information from the certificate is mapped to the user account.

Требования к сертификатамCertificate requirements

При использовании в Windows XP и более ранних версиях операционных систем сертификаты на смарт-картах предъявляют определенные требования к формату.The smart card certificate has specific format requirements when it is used with Windows XP and earlier operating systems. Вы можете включить отображение любого сертификата для поставщика учетных данных смарт-карты.You can enable any certificate to be visible for the smart card credential provider.

КомпонентComponent Требования для Windows 8,1, Windows 8, Windows 7, Windows Vista и Windows 10Requirements for Windows 8.1, Windows 8, Windows 7, Windows Vista, and Windows 10 Требования для Windows XPRequirements for Windows XP
Расположение точки распространения CRLCRL distribution point location Не требуетсяNot required Расположение должно быть указано, находиться в сети и доступно, например:The location must be specified, online, and available, for example:
\ [1 ] точка распространения CRL[1]CRL Distribution Point
Имя точки распространения:Distribution Point Name:
Полное имя:Full Name:
URL-адрес =URL=http://server1.contoso.com/CertEnroll/caname.crl
Использование ключаKey usage Цифровая подписьDigital signature Цифровая подписьDigital signature
Основные ограниченияBasic constraints Не требуетсяNot required \ [Тип темы = конечный объект, ограничение по длине пути = нет ] (необязательно)[Subject Type=End Entity, Path Length Constraint=None] (Optional)
Улучшенное использование ключа (EKU)Enhanced key usage (EKU) Идентификатор объекта для входа в смарт-карту не требуется.The smart card sign-in object identifier is not required.

Note Примечание . Если указано EKU, оно должно содержать EKU для входа со смарт-картой.Note  If an EKU is present, it must contain the smart card sign-in EKU. Для входа можно использовать сертификаты без EKU.Certificates with no EKU can be used for sign-in.

-Проверка подлинности клиента (1.3.6.1.5.5.7.3.2)- Client Authentication (1.3.6.1.5.5.7.3.2)
Идентификатор объекта проверки подлинности клиента необходим только в том случае, если для проверки подлинности SSL используется сертификат.The client authentication object identifier is required only if a certificate is used for SSL authentication.

-Вход со смарт-картой (1.3.6.1.4.1.311.20.2.2)- Smart Card Sign-in (1.3.6.1.4.1.311.20.2.2)

Дополнительное имя субъектаSubject alternative name Для входа со смарт-картой код электронной почты не требуется.E-mail ID is not required for smart card sign-in. Другое имя: имя участника = (UPN), например:Other Name: Principal Name=(UPN), for example:
[email protected][email protected]
Идентификатор объекта OtherName UPN — 1.3.6.1.4.1.311.20.2.3.The UPN OtherName object identifier is 1.3.6.1.4.1.311.20.2.3.
Значение OtherName UPN должно быть строкой UTF8 в формате ASN1.The UPN OtherName value must be an ASN1-encoded UTF8 string.
СубъектSubject Не требуетсяNot required Отличительное имя пользователя.Distinguished name of user. Это поле является обязательным расширением, но заполнение этого поля является необязательным.This field is a mandatory extension, but the population of this field is optional.
Обмен ключами (в поле \ _KEYEXCHANGE)Key exchange (AT_KEYEXCHANGE field) Не требуется для сертификатов входа с помощью смарт-карты, если включен параметр групповой политики.Not required for smart card sign-in certificates if a Group Policy setting is enabled. (По умолчанию параметры групповой политики отключены.)(By default, Group Policy settings are not enabled.) Не требуетсяNot required
CRLCRL Не требуетсяNot required Не требуетсяNot required
ИДЕНТИФИКАЦИОНUPN Не требуетсяNot required Не требуетсяNot required
ЗаметкиNotes Вы можете включить отображение любого сертификата для поставщика учетных данных смарт-карты.You can enable any certificate to be visible for the smart card credential provider. Существует два предопределенных типа закрытых ключей.There are two predefined types of private keys. Эти ключи являются только сигнатурами (в _SIGNATURE) и обменом ключами (в разделе \ _KEYEXCHANGE).These keys are Signature Only (AT_SIGNATURE) and Key Exchange (AT_KEYEXCHANGE). Сертификаты для входа со смарт-картой должны иметь тип закрытого ключа обмена ключами (AT _KEYEXCHANGE).Smart card sign-in certificates must have a Key Exchange (AT_KEYEXCHANGE) private key type.

Сопоставления клиентских сертификатовClient certificate mappings

Сопоставление сертификата основывается на имени участника-пользователя, который содержится в поле subjectAltName (SAN) сертификата.Certificate mapping is based on the UPN that is contained in the subjectAltName (SAN) field of the certificate. Также поддерживаются клиентские сертификаты, не содержащие сведений в поле SAN.Client certificates that do not contain information in the SAN field are also supported.

Протокол SSL/TLS может сопоставлять сертификаты, у которых нет сети SAN, а сопоставление выполняется с помощью атрибутов AltSecID на клиентских учетных записях.SSL/TLS can map certificates that do not have SAN, and the mapping is done by using the AltSecID attributes on client accounts. AltSecID x509, который используется для проверки подлинности клиента SSL/TLS, является формой «X509: <I>»<имя поставщика>«<S>»<>имя субъекта.The X509 AltSecID, which is used by SSL/TLS client authentication is of the form «X509: <I>»<Issuer Name>«<S>»<Subject Name>. * <Имя> поставщика* и <имя> субъекта берется из сертификата клиента, при этом «\r» и «\n» заменяются на «,».The <Issuer Name> and <Subject Name> are taken from the client certificate, with ‘\r’ and ‘\n’ replaced with ‘,’.

Точки распространения списков отзыва сертификатовCertificate revocation list distribution points

Имя участника-пользователя в поле дополнительного имени субъектаUPN in Subject Alternative Name field

Поля «Тема» и «поставщик»Subject and Issuer fields

Это сопоставление учетной записи поддерживается в KDC в дополнение к шести другим методам сопоставления.This account mapping is supported by the KDC in addition to six other mapping methods. На приведенном ниже рисунке показана логика сопоставления учетных записей пользователей, используемая KDC.The following figure demonstrates a flow of user account mapping logic that is used by the KDC.

Поток высокого уровня обработки сертификатов для входаHigh-level flow of certificate processing for sign-in

Объект сертификата анализируется для поиска содержимого для выполнения сопоставления учетной записи пользователя.The certificate object is parsed to look for content to perform user account mapping.

  • Если имя пользователя предоставляется вместе с сертификатом, имя пользователя используется для поиска объекта Account.When a user name is provided with the certificate, the user name is used to locate the account object. Эта операция является самой быстрой, так как выполняется сопоставление строк.This operation is the fastest, because string matching occurs.

  • Если указан только объект сертификата, выполняется серия операций, позволяющая найти имя пользователя, чтобы сопоставить имя пользователя с объектом Account.When only the certificate object is provided, a series of operations are performed to locate the user name to map the user name to an account object.

  • Если для проверки подлинности недоступны данные домена, по умолчанию используется локальный домен.When no domain information is available for authentication, the local domain is used by default. Если для подстановки используется какой-либо другой домен, для сопоставления и привязки необходимо указать подсказку доменного имени.If any other domain is to be used for lookup, a domain name hint should be provided to perform the mapping and binding.

Сопоставление на основе универсальных атрибутов невозможно, так как универсальный API-интерфейс для извлечения атрибутов из сертификата отсутствует.Mapping based on generic attributes is not possible because there is no generic API to retrieve attributes from a certificate. В настоящее время первый способ обнаружения учетной записи успешно останавливает Поиск.Currently, the first method that locates an account successfully stops the search. Однако ошибка конфигурации возникает, если два метода сопоставляют один и тот же сертификат с разными учетными записями пользователей, если клиент не предоставил имя клиента с помощью подсказок по сопоставлению.But a configuration error occurs if two methods map the same certificate to different user accounts when the client does not supply the client name through the mapping hints.

На приведенном ниже рисунке показан процесс сопоставления учетных записей пользователей для входа в каталог путем просмотра различных записей сертификата.The following figure illustrates the process of mapping user accounts for sign-in in the directory by viewing various entries in the certificate.

Логика обработки сертификатовCertificate processing logic

Политику NT \ _AUTH лучше описать в разделе CERT \ _CHAIN \ _POLICY \ _NT \ _AUTH параметра функции CertVerifyCertificateChainPolicy.NT_AUTH policy is best described in the CERT_CHAIN_POLICY_NT_AUTH parameter section of the CertVerifyCertificateChainPolicy function. Дополнительные сведения можно найти в разделе CertVerifyCertificateChainPolicy.For more information, see CertVerifyCertificateChainPolicy.

Вход с помощью смарт-карты для одного пользователя с одним сертификатом на несколько учетных записейSmart card sign-in for a single user with one certificate into multiple accounts

Один сертификат пользователя можно сопоставить с несколькими учетными записями.A single user certificate can be mapped to multiple accounts. Например, пользователь может войти в учетную запись пользователя, а также войти в качестве администратора домена.For example, a user might be able to sign in to a user account and also to sign in as a domain administrator. Сопоставление выполняется с помощью сконструированного AltSecID на основе атрибутов клиентских учетных записей.The mapping is done by using the constructed AltSecID based on attributes from client accounts. Сведения о том, как оценивается это сопоставление, описаны в разделе требования к сертификатам клиента и сопоставления.For information about how this mapping is evaluated, see Client certificate requirements and mappings.

Обратите внимание  , что для каждой учетной записи задано другое имя пользователя, мы рекомендуем включить параметр » Разрешить подсказку подсказок по имени пользователя » (раздел реестраX509HintsNeeded ), чтобы указать, что пользователи смогут вводить свои имена пользователей и данные домена, чтобы войти в систему.Note  Because each account has a different user name, we recommend that you enable the Allow user name hint Group Policy setting (X509HintsNeeded registry key) to provide the optional fields that allow users to enter their user names and domain information to sign in.

На основе сведений, доступных в сертификате, выполняются следующие условия входа.Based on the information that is available in the certificate, the sign-in conditions are:

  1. Если имя участника-пользователя в сертификате отсутствует, сделайте следующее:If no UPN is present in the certificate:

    1. Вход может выполняться в локальном лесе или в другом лесе, если один пользователь с одним сертификатом должен входить в другие учетные записи.Sign-in can occur in the local forest or in another forest if a single user with one certificate needs to sign in to different accounts.

    2. Подсказка должна быть предоставлена, если сопоставление не является уникальным (например, если несколько пользователей сопоставлены с одним и тем же сертификатом).A hint must be supplied if mapping is not unique (for example, if multiple users are mapped to the same certificate).

  2. Если в сертификате присутствует имя участника-пользователя, выполните указанные ниже действия.If a UPN is present in the certificate:

    1. Сертификат не может быть сопоставлен нескольким пользователям в одном лесе.The certificate cannot be mapped to multiple users in the same forest.

    2. Сертификат можно сопоставить с несколькими пользователями в разных лесах.The certificate can be mapped to multiple users in different forests. Для входа пользователя в другие леса необходимо предоставить пользователю подсказку X509.For a user to sign in to other forests, an X509 hint must be supplied to the user.

Вход с помощью смарт-карты для нескольких пользователей в одной учетной записиSmart card sign-in for multiple users into a single account

Группа пользователей может входить в одну учетную запись (например, учетную запись администратора).A group of users might sign in to a single account (for example, an administrator account). Для этой учетной записи сертификаты пользователей сопоставлены таким образом, чтобы они были включены для входа.For that account, user certificates are mapped so that they are enabled for sign-in.

Несколько отдельных сертификатов могут быть сопоставлены одной учетной записи.Several distinct certificates can be mapped to a single account. Для правильной работы сертификата не может быть назначены UPN.For this to work properly, the certificate cannot have UPNs.

Например, если Certificate1 имеет CN = CNName1, Certificate2 имеет CN = User1, а Certificate3 — CN = Пользователь2, AltSecID этих сертификатов можно сопоставить с одной учетной записью с помощью сопоставления имен пользователей и компьютеров Active Directory.For example, if Certificate1 has CN=CNName1, Certificate2 has CN=User1, and Certificate3 has CN=User2, the AltSecID of these certificates can be mapped to a single account by using the Active Directory Users and Computers name mapping.

Вход со смарт-картой через лесаSmart card sign-in across forests

При сопоставлении учетных записей между лесами (особенно в случае, если в сертификате недостаточно данных), пользователь может ввести подсказку в форме имени пользователя, например domain\userили полностью определенного имени участника-пользователя, например [email protected]For account mapping to work across forests, particularly in cases where there is not enough information available on the certificate, the user might enter a hint in the form of a user name, such as domain\user, or a fully qualified UPN such as [email protected].

Note Примечание . чтобы поле подсказок отображалось при входе в систему с помощью смарт-карты, необходимо включить параметр » Разрешить подсказку для имени пользователя » (раздел реестраX509HintsNeeded ) в клиенте.Note  For the hint field to appear during smart card sign-in, the Allow user name hint Group Policy setting (X509HintsNeeded registry key) must be enabled on the client.

Поддержка OCSP для PKINITOCSP support for PKINIT

Протокол OCSP, определенный в RFC 2560, позволяет приложениям получать своевременные сведения о состоянии отзыва сертификата.Online Certificate Status Protocol (OCSP), which is defined in RFC 2560, enables applications to obtain timely information about the revocation status of a certificate. Поскольку ответы OCSP — это небольшие и неограниченные ресурсы, ограниченные клиенты могут использовать OCSP для проверки действительности сертификатов для Kerberos на KDC, чтобы избежать пересылки больших списков CRL и для экономии пропускной способности сетей с ограниченными разрешениями.Because OCSP responses are small and well bound, constrained clients might want to use OCSP to check the validity of the certificates for Kerberos on the KDC, to avoid transmission of large CRLs, and to save bandwidth on constrained networks. Сведения о разделах реестра, посвященных CRL, приведены в разделе Параметры групповой политики на смарт-картах и в реестре.For information about CRL registry keys, see Smart Card Group Policy and Registry Settings.

KDCs в Windows пытается получить ответы OCSP и использовать их, когда они доступны.The KDCs in Windows attempt to get OCSP responses and use them when available. Это поведение не может быть отключено.This behavior cannot be disabled. Интерфейс CryptoAPI для протокола OCSP кэширует ответы OCSP и состояние ответов.CryptoAPI for OCSP caches OCSP responses and the status of the responses. KDC поддерживает только ответы OCSP для сертификата подписавшего.The KDC supports only OCSP responses for the signer certificate.

Клиентские компьютеры Windows пытаются запросить ответы OCSP и использовать их в ответе, когда они будут доступны.Windows client computers attempt to request the OCSP responses and use them in the reply when they are available. Это поведение не может быть отключено.This behavior cannot be disabled.

Требования к корневому сертификату смарт-карты для входа с использованием доменаSmart card root certificate requirements for use with domain sign-in

Для входа в домен с помощью смарт-карты сертификат смарт-карты должен соответствовать следующим условиям:For sign-in to work in a smart card-based domain, the smart card certificate must meet the following conditions:

  • Корневой сертификат центра распространения ключей на смарт-карте должен содержать точку распространения CRL HTTP, указанную в ее сертификате.The KDC root certificate on the smart card must have an HTTP CRL distribution point listed in its certificate.

  • Сертификат входа на смарт-карту должен быть указан в ее сертификате в качестве точки распространения CRL HTTP.The smart card sign-in certificate must have the HTTP CRL distribution point listed in its certificate.

  • Точка распространения CRL должна иметь действительный публикуемый CRL и разностный CRL (если применимо), даже если точка распространения CRL пуста.The CRL distribution point must have a valid CRL published and a delta CRL, if applicable, even if the CRL distribution point is empty.

  • Сертификат смарт-карты должен содержать один из следующих вариантов:The smart card certificate must contain one of the following:

    • Поле темы, содержащее DNS-имя домена в различающемся имени.A subject field that contains the DNS domain name in the distinguished name. Если это не так, разрешение на доступ к соответствующему домену завершается сбоем, поэтому службы удаленных рабочих столов и домен при входе в систему с помощью смарт-карты произошел сбой.If it does not, resolution to an appropriate domain fails, so Remote Desktop Services and the domain sign-in with the smart card fail.

    • Имя участника-пользователя, в котором доменные имена разрешаются в реальный домен.A UPN where the domain name resolves to the actual domain. Например, если имя домена — инжиниринг. Corp. contoso, UPN — [email protected] example, if the domain name is Engineering.Corp.Contoso, the UPN is [email protected] Если хотя бы одна из частей доменного имени не указана, клиент Kerberos не может найти соответствующий домен.If any part of the domain name is omitted, the Kerberos client cannot find the appropriate domain.

Несмотря на то что точки распространения CRL включены по умолчанию в Windows Server 2008, последующие версии операционной системы Windows Server не включают точки распространения CRL HTTP.Although the HTTP CRL distribution points are on by default in Windows Server 2008, subsequent versions of the Windows Server operating system do not include HTTP CRL distribution points. Чтобы разрешить вход с помощью смарт-карты в домен в этих версиях, выполните указанные ниже действия.To allow smart card sign-in to a domain in these versions, do the following:

  1. Включите точки распространения CRL HTTP в центре сертификации.Enable HTTP CRL distribution points on the CA.

  2. Перезапустите центр сертификации.Restart the CA.

  3. Повторите выдаче сертификата KDC.Reissue the KDC certificate.

  4. Выдача или повторная поддача сертификата входа на смарт-карту.Issue or reissue the smart card sign-in certificate.

  5. Распространить обновленный корневой сертификат на смарт-карту, которую вы хотите использовать для входа в домен.Propagate the updated root certificate to the smart card that you want to use for the domain sign-in.

Временное решение состоит в том, чтобы включить параметр разрешения «разрешить подсказку имени пользователя » (раздел реестраX509HintsNeeded ), который позволяет пользователю предоставить указание в пользовательском интерфейсе учетных данных для входа в домен.The workaround is to enable the Allow user name hint Group Policy setting (X509HintsNeeded registry key), which allows the user to supply a hint in the credentials user interface for domain sign-in.

Если клиентский компьютер не присоединен к домену или присоединен к другому домену, клиентский компьютер может разрешить домен сервера только путем просмотра его различающегося имени, а не имени участника-пользователя.If the client computer is not joined to the domain or if it is joined to a different domain, the client computer can resolve the server domain only by looking at the distinguished name on the certificate, not the UPN. Для того чтобы этот сценарий работал, сертификату требуется полная тема, включая DC =<DomainControllerName>, для разрешения доменного имени.For this scenario to work, the certificate requires a full subject, including DC=<DomainControllerName>, for domain name resolution.

Чтобы развернуть корневые сертификаты на смарт-карте для текущего присоединенного домена, можно использовать следующую команду:To deploy root certificates on a smart card for the currently joined domain, you can use the following command:

Certutil — обновление scrootscertutil -scroots update

Дополнительные сведения об этом параметре для средства командной строки можно найти в разделе -SCRoots.For more information about this option for the command-line tool, see -SCRoots.

См. такжеSee also

Принцип работы входа по смарт-карте в WindowsHow Smart Card Sign-in Works in Windows

Проверка хранилища сертификатов Windows на наличие недоверенных корневых сертификатов

Пользователям Windows все более тщательное внимание стоит уделать установленным на компьютере сертификатам. Недавние скандалы с сертификатами Lenovo Superfish, Dell eDellRoot и Comodo  PrivDog лишний раз свидетельствуют о том, что пользователю нужно быть внимательным не только при установке новых приложений, но и четко  понимать, какое ПО и сертификаты предустановлены в системе производителем оборудования. Через установку поддельных или специально сгенерированных сертификатов злоумышленники могут осуществить атаки MiTM (man-in-the-middle), перехватывать трафик (в том числе HTTPS), разрешать запуск вредоносного ПО и скриптов и т.п.

Как правило такие сертификаты устанавливаются в хранилище  доверенных корневых сертификатов Windows (Trusted Root Certification Authorities). Разберемся, каким образом можно проверить хранилище сертификатов Windows на наличие сторонних сертификатов.

В общем случае в хранилище сертификатов Trusted Root Certification Authorities должны присутствовать только доверенные сертификаты, проверенные и опубликованные Microsoft в рамках программы Microsoft Trusted Root Certificate Program. Для проверки хранилища сертификатов на наличия сторонних сертификатом можно воспользоваться утилитой Sigcheck (из набора утилит Sysinternals).

  1. Скачайте утилиту Sigcheck с сайта Microsoft (https://technet.microsoft.com/ru-ru/sysinternals/bb897441.aspx)
  2. Распакуйте архив Sigcheck.zip в произвольный каталог (например, C:\install\sigcheck\)
  3. Откройте командную строку и перейдите в каталог с утилитой: cd C:\install\sigcheck\
  4. В командной строке выполните команду sigcheck.exe–tv, или sigcheck64.exe –tv (на 64 битных версиях Windows)
  5. При первом запуске утилита sigcheck попросит принять условия использования
  6. После этого утилита скачает с сайта Microsoft и поместит свой каталог архив authrootstl.cab со списком корневых сертификатов MS в формате Certification Trust List.
  7. Утилита сравнит список сертификатов установленных на компьютере со списком корневых сертификатов MSFT в файле authrootstl.cab. В том случае, если в списке коревых сертификатов компьютера присутствуют сторонние сертификаты, SigCheck выведет их список. В нашем примере на компьютере имеется один сертификат с именем test1 (это самоподписанный сертификат созданный с помощью командлета New-SelfSignedCertificate, который я создавал для подписывания кода PowerShell скрипта)
  8. Каждый найденный сторонний сертификат стоит проанализировать на предмет необходимости его присутствуя в списке доверенных. Желательно также понять какая программа установила и использует его.Совет. В том случае, если компьютер входит в домен, скорее всего в списке «сторонних» окажутся корневые сертификаты внутреннего центра сертификации CA, и другие сертификаты, интегрированные в образ системы или распространенные групповыми политиками, которые с точки зрения MSFT могут оказаться недоверенными.
  9. Чтобы удалить данный сертификат их списка доверенных, откройте консоль управления сертификатами (msc) и разверните контейнер Trusted Root Certification Authorities (Доверенные корневые центры сертификации) -> Certificates и удалите сертификаты, найденные утилитой SigCheck.

Таким образом, проверку хранилища сертификатов с помощью утилиты SigCheck стоит обязательно выполнять на любых системах, особенно на OEM компьютерах с предустановленной ОС и различных сборках Windows, распространяемых через популярные торрент-трекеры.

Магазин сертификатов доверенных издателей — драйверы для Windows

  • 2 минуты на чтение

В этой статье

Хранилище сертификатов доверенных издателей содержит информацию о сертификатах Authenticode (подписи) доверенных издателей, установленных на компьютере.Для тестирования и отладки пакетов драйверов в организации ваша компания должна установить сертификаты Authenticode, которые используются для подписи пакетов драйверов в хранилище сертификатов доверенных издателей. Установите сертификаты Authenticode на каждый компьютер в рабочей группе или организационном подразделении, на котором выполняется подписанный код. Имя хранилища сертификатов доверенных издателей — доверенный издатель.

Если сертификат Authenticode издателя находится в хранилище сертификатов Trusted Publishers, Windows устанавливает пакет драйвера, который был подписан цифровой подписью сертификатом, без запроса пользователя ( тихая установка ).Установив сертификаты Authenticode в хранилище сертификатов Trusted Publishers, вы можете автоматизировать установку вашего пакета драйверов в различных системах, которые используются для внутреннего тестирования и отладки.

Важно Эта практика автоматизации установки пакетов драйверов рекомендуется только для ваших внутренних систем. Этой практики никогда не следует придерживаться для любых пакетов драйверов, распространяемых за пределами вашей организации.

Хранилище сертификатов доверенных издателей отличается от хранилища сертификатов доверенных корневых центров сертификации тем, что доверять можно только сертификатам конечного объекта .Например, если сертификат Authenticode от ЦС использовался для тестовой подписи пакета драйвера, добавление этого сертификата в хранилище сертификатов доверенных издателей не настраивает все сертификаты, выданные этим ЦС, как доверенные. Каждый сертификат необходимо отдельно добавить в хранилище сертификатов доверенных издателей.

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

Вы можете вручную установить сертификаты Authenticode в хранилище сертификатов Trusted Publishers на компьютере с помощью инструмента CertMgr .

Примечание Политика проверки подписи драйвера, используемая Plug and Play, требует, чтобы сертификат Authenticode CA был предварительно установлен в версии хранилища сертификатов Trusted Publishers на локальном компьютере.Для получения дополнительной информации см. Хранилища сертификатов локального компьютера и текущего пользователя.

Дополнительные сведения о политиках ограниченного использования программ и использовании правил сертификатов см. В Центре справки и поддержки Windows.

Дополнительные сведения о развертывании сертификатов Authenticode на предприятии с помощью групповой политики см. В файле readme Selfsign_readme.htm , который находится в каталоге src \ general \ build \ driversigning WDK.

Дополнительные сведения о хранилищах сертификатов см. На веб-сайте передовых методов подписания кода.

Локальный компьютер и хранилища сертификатов текущего пользователя — драйверы Windows

  • 2 минуты на чтение

В этой статье

Каждое из хранилищ сертификатов системы имеет следующие типы:

  • Хранилище сертификатов локального компьютера

    Этот тип хранилища сертификатов является локальным для компьютера и глобальным для всех пользователей компьютера.Это хранилище сертификатов находится в реестре под корнем HKEY_LOCAL_MACHINE.

  • Хранилище сертификатов текущего пользователя

    Хранилище сертификатов этого типа является локальным для учетной записи пользователя на компьютере. Это хранилище сертификатов находится в реестре под корнем HKEY_CURRENT_USER.

Информацию о конкретных реестрах хранилищ сертификатов см. В разделе «Расположение системных магазинов».

Имейте в виду, что все текущие хранилища сертификатов пользователя , кроме хранилища текущего пользователя / личного, наследуют содержимое хранилищ сертификатов локального компьютера.Например, если сертификат добавлен в хранилище сертификатов Trusted Root Certification Authorities на локальном компьютере, все хранилища сертификатов Trusted Root Certification Authorities текущего пользователя (с указанным выше предупреждением) также содержат сертификат.

Примечание

Для проверки подписи драйвера во время установки Plug and Play (PnP) требуется, чтобы корневой сертификат и сертификаты Authenticode, включая тестовые сертификаты, находились в хранилище сертификатов локального компьютера.

Для получения дополнительной информации о том, как добавлять или удалять сертификаты из системных хранилищ сертификатов, см. CertMgr .

[РУКОВОДСТВО] Как установить доверенный корневой сертификат в Windows 10

Узнайте, как установить доверенный корневой сертификат в Windows 10 / 8.1 / 8/7, выданный безопасным центром сертификации, с помощью мастера импорта сертификатов.

Поскольку Интернет движется к HTTPS , увеличивается количество центров сертификации безопасности ( CA, s) и количество выданных сертификатов. Windows 10 поставляется с некоторыми встроенными сертификатами, установленными от ведущих CA s.Но если вы собираетесь посетить веб-сайт / приложение, корневой сертификат которого не установлен заранее на вашем компьютере (из-за его поставщика, типа или формата), вы можете получить следующее приглашение в браузере, где вам нужно доверять CA самостоятельно. Возможно, вам придется делать это каждый раз, когда вы посещаете веб-сайт / приложение.

Чтобы избежать этого, вы можете установить корневой сертификат на свой компьютер из CA . Все CA публично и бесплатно разрешают загрузку своих корневых сертификатов через репозиторий. Корневой сертификат — это самый верхний сертификат безопасности, выданный CA , а все другие промежуточные сертификаты следует аналогии древовидной структуры, начиная с корневого сертификата. Таким образом, если корневой сертификат присутствует на вашем компьютере, все сертификаты, выпущенные в иерархическом порядке после него, будут автоматически доверять вашей системе.

В этой статье мы увидим, как вручную добавить доверенный корневой сертификат на ваш компьютер с Windows 10.

Как установить доверенный корневой сертификат в Windows 10

FYI: Вы должны быть администратором вашей системы, чтобы выполнить эти шаги.

1. Нажмите + R и поместите secpol.msc в диалоговое окно Выполнить . Нажмите ОК , чтобы открыть оснастку Политика безопасности .

2. В оснастке Local Security Policy щелкните Public Key Policies > Certificate Path Validation Settings .

3. Затем в Свойства параметров проверки пути сертификата на вкладке Store отметьте Определите эти параметры политики .Убедитесь, что вы отметили Разрешить использование доверенных корневых центров сертификации пользователей для проверки сертификатов и Разрешить пользователям доверять одноранговым сертификатам доверия здесь параметры . В разделе Корневые сертификаты хранятся , выберите опцию Сторонние корневые ЦС и Корневые ЦС предприятия . Щелкните Применить , а затем ОК .

Закройте оснастку Локальная политика безопасности .

4. Нажмите + R и поставьте certmgr.msc в диалоговом окне Выполнить . Щелкните OK , чтобы открыть оснастку Certificate Manager .

Обновление списка доверенных корневых сертификатов в Windows 10 / 8.1 / 7

Все версии Windows имеют встроенную функцию автоматического обновления корневых сертификатов с веб-сайтов Microsoft. В рамках программы Microsoft Trusted Root Certificate Program MSFT поддерживает и публикует список сертификатов для клиентов и устройств Windows в своем онлайн-хранилище.Если проверенный сертификат в своей цепочке сертификации относится к корневому ЦС, который участвует в этой программе, система автоматически загрузит этот корневой сертификат с серверов Центра обновления Windows и добавит его к доверенным.

Windows запрашивает обновление списков доверенных корневых сертификатов (CTL) один раз в неделю. Если у Windows нет прямого доступа к каталогу Windows Update, система не сможет обновить корневые сертификаты, поэтому у пользователя могут возникнуть проблемы при просмотре веб-сайтов (какие сертификаты SSL подписаны ненадежным центром сертификации — см. статью об ошибке Chrome SSL: этот сайт не может обеспечить безопасное соединение) или об установке / запуске подписанных скриптов и приложений.

В этой статье мы попытаемся узнать, как вручную обновить список корневых сертификатов в TrustedRootCA в изолированных сетях или на компьютерах / серверах без прямого подключения к Интернету.

Примечание. Если ваши компьютеры выходят в Интернет через прокси-сервер, для автоматического обновления корневых сертификатов на компьютерах пользователей Microsoft рекомендует открыть прямой доступ (обход) к веб-сайтам Microsoft. Однако это не всегда возможно или применимо из-за корпоративных ограничений.

Управление надежными корневыми сертификатами в Windows 10

Как посмотреть список корневых сертификатов компьютера с Windows?

  1. Чтобы открыть хранилище корневых сертификатов компьютера под управлением Windows 10 / 8.1 / 7 / Windows Server, запустите консоль mmc.exe ;
  2. Выберите файл -> Добавить / удалить оснастку , выберите Сертификаты (certmgr) в списке оснасток -> Добавить ;
  3. Выберите, что вы хотите управлять сертификатами локальной учетной записи компьютера ;
  4. Далее -> ОК -> ОК;
  5. Разверните узел Сертификаты -> Надежный Корневой Сертификат Органы Магазин. В этом разделе содержится список доверенных корневых сертификатов на вашем компьютере.

Вы также можете получить список доверенных корневых сертификатов с датами истечения срока действия с помощью PowerShell:

Сертификат Get-Childitem: \ LocalMachine \ root | список форматов

Вы можете указать сертификаты с истекшим сроком действия или сертификаты, срок действия которых истекает в ближайшие 30 дней:

Сертификат Get-ChildItem: \ LocalMachine \ root | Где {$ _. NotAfter -lt (Get-Date) .AddDays (40)}

В консоли mmc можно просмотреть информацию о любом сертификате или удалить его из доверенных.

Вы можете вручную перенести файл корневого сертификата между компьютерами Windows с помощью функции экспорта / импорта.

  1. Вы можете экспортировать любой сертификат в файл .CER, щелкнув по нему и выбрав Все задачи -> Экспорт;
  2. Вы можете импортировать этот сертификат на другой компьютер, используя опцию Все задачи -> Импорт.

Утилита Rootsupd.exe

В Windows XP для обновления корневых сертификатов компьютера использовалась утилита rootupd.exe .Список корневых и отозванных сертификатов в нем регулярно обновлялся. Утилита распространялась как отдельное обновление KB931125 (Обновление для корневых сертификатов). Посмотрим, сможем ли мы использовать это сейчас.

  1. Загрузите утилиту rootupd.exe , используя следующую ссылку http://download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/rootsupd.exe . На данный момент (2 августа 2019 г.) ссылка не работает, возможно, Microsoft решила удалить ее из общего доступа.Сегодня вы можете скачать rootupd.exe с сайта kaspersky.com — http://media.kaspersky.com/utilities/CorporateUtilities/rootsupd.zip;
  2. Чтобы установить корневые сертификаты Windows, просто запустите файл rootupd.exe . Но мы постараемся более внимательно изучить его содержание. Извлеките сертификаты из исполняемого файла с помощью команды: rootupd.exe / c / t: C: \ PS \ rootupd
  3. Сертификаты хранятся в файлах SST, таких как authroots.sst, delroot.sst и т. Д.Чтобы удалить / установить сертификат, вы можете использовать следующие команды:
    updroots.exe authroots.sst
    updroots.exe -d delroots.sst

Однако , как видите, эти файлы сертификатов были созданы 4 апреля 2013 г. (почти за год до окончания официальной поддержки Windows XP). Таким образом, с тех пор утилита не обновлялась и не может использоваться для установки актуальных сертификатов. Чуть позже нам понадобится файл updroots.exe.

Certutil: получение последних корневых сертификатов из Центра обновления Windows

Последняя версия Certutil.Инструмент exe для управления сертификатами (доступен в Windows 10), позволяет загружать из Центра обновления Windows и сохранять фактический список корневых сертификатов в файл SST.

Чтобы создать файл SST, запустите эту команду с правами администратора на компьютере под управлением Windows 10 и имеющем прямой доступ к Интернету:

certutil.exe -generateSSTFromWU roots.sst

В результате в целевом каталоге появится файл SST, содержащий обновленный список корневых сертификатов.Дважды щелкните, чтобы открыть его. Этот файл представляет собой контейнер, содержащий доверенные корневые сертификаты.

Как видите, открывается знакомая оснастка управления сертификатами, из которой вы можете экспортировать любой из полученных сертификатов. В моем случае в списке сертификатов было 358 пунктов. Очевидно, экспортировать сертификаты и устанавливать их по очереди нецелесообразно.

Чтобы установить все сертификаты из файла SST и добавить их в список доверенных корневых сертификатов на компьютере, вы можете использовать команды PowerShell:

$ sstStore = (Get-ChildItem -Path C: \ ps \ rootupd \ root.sst)
$ sstStore | Импорт-сертификат -CertStoreLocation Cert: \ LocalMachine \ Root

Чтобы установить все сертификаты, перечисленные в файле, используйте программу updroots.exe (она находится в файле rootupd.exe, извлеченном в предыдущем разделе).

updroots.exe roots.sst

Запустите оснастку certmgr.msc и убедитесь, что все сертификаты были добавлены в Trusted Root Certification Authority .

Список корневых сертификатов в формате STL

Есть еще один способ получить список корневых сертификатов с сайта Microsoft. Для этого скачайте файл http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootstl.cab (обновляется дважды в месяц). С помощью любого архиватора (или даже проводника Windows) распаковать authrootstl.cab . Он содержит один файл authroot.stl .

Файл Authroot.stl — это контейнер со списком доверенных сертификатов в формате Certificate Trust List.

Вы можете установить этот файл в систему, используя контекстное меню файла STL ( Install CTL ).

Или с помощью инструмента certutil.exe:

certutil -addstore -f root authroot.stl

 root «Доверенные корневые центры сертификации»
CTL 0 добавлен в магазин.
CertUtil: команда -addstore успешно завершена. 

Вы также можете импортировать сертификаты с помощью консоли управления сертификатами (Trust Root Certification Authorities -> Certificates -> All Tasks -> Import).Укажите путь к вашему STL файлу с сертификатами.

После запуска команды в контейнере Trusted Root Certification Authorities консоли диспетчера сертификатов (certmgr.msc) появится новый раздел Список доверенных сертификатов.

Таким же образом вы можете загрузить и установить список отозванных (запрещенных) сертификатов, которые были удалены из программы корневых сертификатов. Для этого скачайте disallowedcertstl.cab (http: // ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/disallowedcertstl.cab), распакуйте его и добавьте в раздел «Недоверенные сертификаты» с помощью этой команды:

certutil -addstore -f disallowed disallowedcert.stl

Обновление корневых сертификатов в Windows с помощью GPO в изолированной среде

Если у вас есть задача регулярно обновлять корневые сертификаты в изолированном от Интернета домене Active Directory, существует несколько более сложная схема обновления локальных хранилищ сертификатов на компьютерах, присоединенных к домену, с помощью групповых политик.Вы можете настроить обновление корневого сертификата на пользовательских компьютерах в изолированных сетях Windows несколькими способами.

Первый способ предполагает, что вы регулярно вручную загружаете и копируете в свою изолированную сеть файл с корневыми сертификатами, полученными следующим образом:

certutil.exe –generateSSTFromWU root.sst

Затем сертификаты из этого файла можно распространять через SCCM или сценарий входа PowerShell в GPO:

$ sstStore = (Get-ChildItem -Path \\ fr-dc01 \ SYSVOL \ woshub.com \ rootcert \ root.sst)
$ sstStore | Импорт-сертификат -CertStoreLocation Cert: \ LocalMachine \ Root

Второй способ — получить фактические корневые сертификаты с помощью команды:

Certutil -syncWithWU -f \\ fr-dc01 \ SYSVOL \ woshub.com \ rootcert \

В указанной сетевой общей папке появится ряд файлов корневых сертификатов (формат файла CRT), включая файлы (authrootstl.cab, disallowedcertstl.cab, disallowedcert.sst, thumbprint.crt).

Затем, используя предпочтения групповой политики, вам нужно изменить значение параметра RootDirURL в разделе реестра HKLM \ Software \ Microsoft \ SystemCertificates \ AuthRoot \ AutoUpdate . Этот параметр должен указывать на общую сетевую папку, из которой ваши компьютеры с Windows должны получать новые корневые сертификаты. Запустите консоль GPMC домена, создайте новый GPO, переключитесь в режим редактирования политики и разверните раздел Computer Configuration -> Preferences -> Windows Settings -> Registry .Создайте новое свойство реестра со следующими параметрами:

  • Действие : обновление
  • Улей : HKLM
  • Путь к ключу : Software \ Microsoft \ SystemCertificates \ AuthRoot \ AutoUpdate
  • Имя значения : RootDirURL
  • Тип : REG_SZ
  • Данные значения : file: // \\ fr-dc01 \ SYSVOL \ woshub.com \ rootcert \

Осталось связать эту политику с OU компьютера и после обновления политик проверить наличие новых корневых сертификатов в certstore.

Политика Отключить автоматическое обновление корневых сертификатов в разделе «Конфигурация компьютера» -> «Административные шаблоны» -> «Система» -> «Управление связью через Интернет» -> Параметры связи через Интернет должны быть отключены или не настроены.

В этой статье мы рассмотрели несколько способов обновления доверенных корневых сертификатов в сети Windows, изолированной от Интернета.

магазинов сертификатов Windows | Блог

Мне было любопытно, где именно сертификаты и соответствующие им закрытые ключи хранятся на машине Windows.Провел небольшое исследование, и картина несколько ясна, однако информации по теме много, и некоторые моменты, похоже, не соответствуют реальной ситуации на моем компьютере с Windows 8.

Давайте начнем с основ, с консоли Certificates MMC, которую легко запустить с помощью certmgr.msc. Он дает нам первую подсказку, где хранятся сертификаты, позволяя нам просматривать хранилища физических сертификатов:


Как видите, существует несколько хранилищ: Реестр, Локальный компьютер (жесткий диск), Смарт-карта.Есть также некоторые, не показанные на картинке: магазин Enterprise, магазин групповой политики, сторонний магазин. При использовании AD CA в разделе Configuration также есть несколько контейнеров, но давайте их игнорировать.

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

  • HKEY_Current_User \ Software \ Microsoft \ SystemCertificates содержит параметры реестра для текущего пользователя. Они могут включать в себя BLOB (большой двоичный объект) и различные настройки для сертификата, а также настройки, связанные с сертификатами CA, которые поддерживают сертификаты пользователей.

  • HKEY_Current_User \ Software \ Policies \ Microsoft \ SystemCertificates содержит ту же информацию, но для сертификатов, распространяемых через групповую политику.

  • HKEY_Users \ User SID \ Software \ Microsoft \ SystemCertificates содержит эту информацию для соответствующего пользователя

  • HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Cryptography \ Services \ ServiceName \ SystemCertificates содержит эту информацию для соответствующей учетной записи службы

  • HKEY_Local_Machine \ Software \ Microsoft \ SystemCertificates содержит информацию для учетной записи компьютера

  • HKEY_Local_Machine \ Software \ Policies \ Microsoft \ SystemCertificates содержит то же самое, но для распределенных сертификатов GP для учетной записи компьютера

  • HKEY_Local_Machine \ Software \ Microsoft \ EnterpriseCertificates содержит информацию об опубликованных сертификатах AD

Дополнительную информацию об этом можно найти в этих статьях на MSDN и TechNet.

Теперь кое-что действительно хранится на локальном жестком диске. В файле: \\% APPDATA% \ Microsoft \ SystemCertificates \ My \ Certificates вы найдете все ваши личные сертификаты. Глядя на изображение выше и всю информацию, которую я видел в Интернете, их следует хранить в реестре. Что ж, по крайней мере, на моем компьютере с Windows 8 это не так, и все сертификаты, перечисленные в разделе «Личные» в certmgr.msc, можно найти в этой папке. Соответствующие закрытые ключи находятся в C: \ Users \ XXXX \ AppData \ Roaming \ Microsoft \ Crypto \ RSA \ S-I-D \.Также стоит отметить каталоги C: \ Users \ XXXX \ AppData \ Roaming \ Microsoft \ Credentials и C: \ Users \ XXXX \ AppData \ Roaming \ Microsoft \ Protect \ S-I-D.

Для учетной записи компьютера сертификаты действительно хранятся в реестре в ключах, описанных выше. Соответствующие закрытые ключи хранятся в зашифрованном виде в C: \ ProgramData \ Microsoft \ Crypto \ RSA \ MachineKeys и аналогичным образом для остальных.

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

 certutil -user -viewstore Мой 

Если вы просто хотите вывести всю информацию в консоль, вы можете использовать:

 certutil -user -store Мой 

Чтобы сделать то же самое для учетной записи компьютера, просто удалите параметр ‘-user’:

 certutil -store My или certutil -viewstore My 

Доступно гораздо больше возможностей, не стесняйтесь изучать больше здесь.

Для любителей PowerShell диск Cert: может предоставить большую часть необходимой информации. Вот некоторые варианты использования:

 PS C: \> cd Cert :; реж

Расположение: CurrentUser
StoreNames: {SmartCardRoot, Root, Trust, AuthRoot ...}

Расположение: LocalMachine
StoreNames: {TrustedPublisher, ClientAuthIssuer, Remote Desktop, Root ...} 

Чтобы перечислить все сертификаты в «Личном» хранилище для текущего пользователя, введите:

 Сертификат PS: \> dir Cert: \ CurrentUser \ My

Каталог: Microsoft.PowerShell.Security \ Certificate :: CurrentUser \ My
Тема отпечатка пальца
---------- -------
A7620E9F2EA346FF002AECA5EEBE364892E70D74 CN = 6DB6031A-EB7C-4DD8-8CD6-D238A787B8F8
978C8DDEF435A171EC32F9A3D58A8D3BFC9 [email protected]
7B5159CEDAF7DDA18090BBC78CA607213235823F [email protected], CN = Васил Любенов Мичев, OU = VPN-WEB-H, O = Компания Hewlett-Packard
3DE9DFBBC381470A9234FF06D8109A8E74140655 CN = vasil @ michev.Информация
249BA6C5CA7DC641A07287EA2B2AA9B361A4C56E CN = Васил 

Чтобы получить все сведения о конкретном сертификате, вы можете использовать:

 PS Cert: \> dir Cert: \ CurrentUser \ My \ 106796B4130A9AE14BF38C7CE553353204613796 | fl * 

И, конечно, вы можете сделать гораздо больше с помощью PowerShell, обязательно ознакомьтесь с этой статьей.

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

Как создать самоподписанные сертификаты SSL в Windows 10

Из-за того, что в последнее время в новостях всплывают все проблемы безопасности и инциденты со взломом, создание веб-сайтов с постоянно включенной системой безопасности стало основополагающим. Поставщики CMS (такие как Sitecore и Episerver) начали требовать безопасных соединений даже для сред разработки. В большинстве случаев невозможно купить криптографические сертификаты для локальной среды разработки каждого разработчика, но вы можете легко получить самозаверяющие сертификаты бесплатно.Эти сертификаты подходят для использования в локальных средах и будут соответствовать требованиям безопасности во время разработки решения. Однако самозаверяющие сертификаты НИКОГДА не должны использоваться для рабочих или общедоступных веб-сайтов.

PowerShell в Windows 10 включает команду New-SelfSignedCertificate. Он обеспечивает большую гибкость, чем очень простой вариант «Создать самоподписанный сертификат» в IIS, и его не так сложно использовать, как MakeCert.exe. Вы можете найти полную ссылку на эту команду здесь.

Ниже я предоставлю краткий обзор и руководство по использованию самозаверяющих сертификатов для локальных сайтов в IIS — и не буду выводить предупреждение о недопустимом сертификате из веб-браузера. Прежде чем начать, убедитесь, что вы выбрали локальное DNS-имя для своего сайта и добавили эту запись в файл локальных хостов. В этом примере наш локальный сайт будет называться mysite.local

.

Откройте окно PowerShell в режиме администратора и введите следующую команду:

 New-SelfSignedCertificate -CertStoreLocation Cert: \ LocalMachine \ My -DnsName "mysite.local "-FriendlyName" MySiteCert "-NotAfter (Get-Date) .AddYears (10) 

Это создаст самозаверяющий сертификат для mysite.local, действительный в течение 10 лет. Вы можете изменить количество лет, изменив значение в функции AddYears.

После создания сертификата необходимо скопировать его в хранилище доверенных корневых центров сертификации. Используя поиск Cortana в Windows 10, вводите «сертификат», пока не увидите параметр «Управление сертификатами компьютера», и откройте его.Выполните следующие действия:

  1. На левой панели перейдите в Сертификаты — Локальный компьютер → Личный → Сертификаты
  2. .
  3. Найдите созданный сертификат (в этом примере просмотрите столбец «Кому выдан» «mysite.local» или столбец «Понятное имя» «MySiteCert»)
  4. На левой панели откройте (но не переходите в) Сертификаты — Локальный компьютер → Доверенные корневые центры сертификации → Сертификаты
  5. С помощью правой кнопки мыши перетащите сертификат в место, открытое на предыдущем шаге
  6. Выберите «Копировать сюда» во всплывающем меню

Откройте IIS, перейдите на свой сайт и добавьте к нему привязку https.Убедитесь, что вы ввели имя хоста, установите флажок «Требовать указание имени сервера» и выберите сертификат SSL «MySiteCert» (или понятное имя, которое вы ввели при создании сертификата). Проверьте свой сайт, открыв веб-браузер и введя «https: //mysite.local/», и вы не должны получать никаких предупреждений о недействительности сертификата.

Вы также можете создавать самозаверяющие сертификаты типа «звездочка». Предположим, у вас есть несколько сайтов с именами «app1.example.local», «app2.example.local» и т. Д. Пример проще создать один сертификат с общим именем.local «. Для этого введите следующую команду:

 New-SelfSignedCertificate -CertStoreLocation Cert: \ LocalMachine \ My -Subject "* .example.local" -DnsName "example.local", "* .example.local" -FriendlyName "LocalStarCert" -NotAfter (Get-Date) .AddYears (10) 

И выполните те же действия, что и для сертификата одного домена. В IIS используйте один и тот же сертификат в привязке https для каждого сайта.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *