- Автоматическая настройка сертификата электронной подписи и рабочего места
- Автоматический импорт сертификатов
- Вариант 1. установка с помощью консоли
- Вариант 2. стандартная установка
- Вариант 3. установка через internet explorer
- Видео по теме
- Делаем автоустановку сертификатов
- Мастер установки корневого сертификата
- Материал из база знаний сбис электронная отчетностя
- Об авторе
- Обновление сертификатов цс
- Общий план развёртывания
- Ответы
- Подготовка веб-сервера
- Предварительная конфигурация
- Предустановочная конфигурация
- Прочие настройки
- Резервное копирование
- Рекомендации
- Скрипт настройки
- Словарь терминов
- Установка издающего цс
- Установка компонента цс
- Установка корневого цс
- Шаблоны сертификатов
- Итоговая настройка
Автоматическая настройка сертификата электронной подписи и рабочего места
Автоматический импорт сертификатов
Как-то и до нас дошёл прогресс. Озадачили нашу контору документооборотом со сторонними организациями. Все в порядке, софт нам написали, все организовали, но мне поручили, кроме прочего, отвечать за машину по приему корреспонденции от сторонних организаций. Небольшая ремарка: все принималось автоматически и переправлялась ответственным пользователям, у которых также была организованна клиентская часть комплекса.
Мне необходимо было чуть ли не ежедневно проверять и обновлять «Списки отозванных сертификатов» и файл с сертификатами абонентов.
Помучился я с этим недельку и решил все автоматизировать. Первым делом решил обратиться к товарищу Google, но он мне ни чем не помог. Опечалился я сильно и вторую неделю занимался ручным трудом, достало это меня знатно. И вот решил я подумать.
Итак, моя задача разбивалась на две подзадачи:
1. Скачать с сайта актуальные сертификаты
2. Импортировать скачанные сертификаты в систему.
Первая задача решилась просто, так как я вспомнил о замечательной утилитке wget под Linux, немного погуглив я нашёл её полный аналог для Windows скачал её:
Вот небольшая инструкция по внедрению утилиы в систему:
1.1 Скачиваем утилитку по ссылке выше
1.2 Распаковываем и полученный файл «wget.exe» в папку «Windowssystem32», либо в папку «Windows».
1.3 Заходим в командную строку и проверяем работоспособность командой «wget -h»
Это достаточно просто и в принципе ничего нового, приступаем к решению нашей второй подзадачи.
У нас в конторе используется Менеджер сертификатов фирмы Avest. И опять к товарищу Google, но и тут он мне ничем не помог. Решил посмотреть инструкцию к нашему менеджеру сертификатов и, о, чудо, есть возможность импорта.
Ну, вот и все, осталось дело за малым — объединить это все в один bat файл и загнать его в «Планировщик задач Windows». Дальше можно не заглядывать на наш сервер.
P.S: Затем пришлось организовать автоматическую загрузку сертификатов в общую папку и импорт в автоматическом режиме для всех пользователей. Но это уже каждый сможет подогнать под нужды своей сети.
Ещё во время импорта сертификатов не должен быть открыт «Менеджер сертификатов» — вылетает ошибка.
Вариант 1. установка с помощью консоли
Данный вариант — единственный работоспособный для Windows 7.
- Запустите консоль mmc (Пуск / Выполнить)
- Появится окно консоли. В главном меню выберите Консоль / Добавить или удалить оснастку
- Появится окно «Добавить или удалить оснастку». Нажмите кнопку «Добавить. «
- В списке оснастки выберите «Сертификаты» и нажмите «Добавить».
- В окне «Оснастка диспетчера сертификатов» оставьте значения по умолчанию и нажмите «Готово»
- Закройте окно «Добавить изолированную оснастку» (кнопка «Закрыть»)
- В окне «Добавить или удалить оснастку» нажмите «ОК»
- В дереве консоли появится запись «Сертификаты». Раскройте ее и найдите раздел «Доверенные корневые центры сертификации», «Сертификаты»
- На строке «Сертификаты» нажмите правую кнопку мыши и в контекстном меню выберите Все задачи / Импорт
- Пройдите до конца мастер импорта сертификатов.
Вариант 2. стандартная установка
- Запустите файл сертификата как программу. Появится окно «Сертификат».

- Нажмите кнопку «Установить сертификат».
- Пройдите до конца мастер импорта сертификатов.
Вариант 3. установка через internet explorer
- Запустите iexplorer. В главном меню выберите Сервис / Свойства обозревателя.
- Откройте «Свойства обозревателя» через Пуск / Панель управления.
- Переключитесь на вкладку «Содержание».
- Откроется окно «Сертификаты». Переключитесь на вкладку «Доверенные корневые центры сертификации».
- Нажмите кнопку «Импорт».
- Пройдите до конца мастер импорта сертификатов.
Видео по теме
Для лучшего понимания процесса я записал небольшой видеоролик!
Делаем автоустановку сертификатов
Нам понадобится утилита certmgr.exe из набора Windows SDK. Информация о том, как ей пользоваться – есть вот на этой странице.
Утилита certmgr.exe из набора Microsoft SDK
В контекстном меню при выделении всех файлов выбираем команду “Добавить в архив…”.
Упаковываем все файлы в архив
Указываем параметры архива. Здесь можно задать произвольное имя выходного исполняемого файла, а также необходимо отметить галочкой пункт “Создать SFX-архив”.
Указываем параметры архива
На вкладке “Дополнительно” нажимаем кнопку “Параметры SFX…”.
Устанавливаем параметры SFX
На вкладке “Общие” указываем путь для распаковки – можно указать текущую папку или её подкаталог.
Самое интересное: на вкладке “Установка” указываем какие команды выполнить после извлечения файлов. Текущим каталогом при этом будет являться тот, куда распакованы файлы. Команда для установки сертификата в хранилище выглядит так:
certmgr.exe -add -c «Имя файла.cer» -s -l localMachine root
где localMachine означает установку для компьютера, а root – название хранилища доверенных корневых центров сертификации.
Для удобства пользования можно скрыть все диалоговые окна (в противном случае будет отображаться диалоговое окно выбора каталога для распаковки и т.д.).
Мастер установки корневого сертификата
- Откройте мастер импорта сертификатов и нажмите «Далее >».
- На шаге «Импортируемый файл» (Шаг может быть пропущен, в зависимости от варианта запуска мастера) с помощью кнопки «Обзор. » выберите корневой сертификат и нажмите «Далее >».
- На шаге «Хранилище сертификатов» установите опцию «Поместить все сертификаты в следующее хранилище» и нажмите кнопку «Обзор».
- В окне выбора хранилища установите флаг «Показать физические хранилища», раскройте «ветку» ( ) «Доверенные корневые центры сертификации» и выберите место хранения сертификата:
- «Реестр» — для пользования корневым сертификатом только текущим пользователем под данной операционной системой.
- «Локальный компьютер» — для пользования корневым сертификатом всеми пользователями операционной системой.
- После нажатия кнопок «Ок», «Далее >» и «Готово» может появиться предупреждение о безопасности (зависит от внутренних настроек операционной системы) с вопросом «Установить данный сертификат?», нажмите «Да».
- Появится сообщение — «Импорт успешно выполнен», корневой сертификат добавлен в доверенные корневые центры сертификации для вашей или для всех учетных записей.
Для контроля вы можете просмотреть список установленных корневых сертификатов . Если установленный сертификат в списке не появлися — устраните проблему.
При отсутствии корневого «дочерние» сертификаты получают
Для организации удалённого доступа через ВПН используем шифрование на основе сертификата. При выдаче сертификата на компьютер в домене всё в порядке (настроена автовыдача). При выдаче сертификата для компьютера не являющегося членом домена передаём сертификат с ключами (формат PFX) пользователю.
А пользователю приходится ручками с помощью консоли помещать сертификат в хранилище компьютера потому что, при простом импорте в автоматическом режиме (типа кликаем на сертификате и нажимаем далее), сертификат помещается в хранилище для пользователя, а не компьютера.
Материал из база знаний сбис электронная отчетностя
Примечание: Для электронных торгов необходимо установить корневой сертификат УЦ.
Об авторе
Вадим Поданс
— специалист в области автоматизации PowerShell и Public Key Infrastructure, Microsoft MVP: Cloud and Datacenter Management с 2009 года и автор модуля PowerShell PKI. На протяжении 9 лет в своём блоге освещает различные вопросы эксплуатации и автоматизации PKI на предприятии. Статьи Вадима о PKI и PowerShell можно найти на его
Обновление сертификатов цс
Периодически необходимо обновлять сертификаты ЦС. Рассмотрим несколько аспектов, связанных с обновлением сертификатов ЦС.
Периодичность обновления сертификата ЦС
Это делается в следующих случаях:
Первый вопрос, если всё идёт штатно, за какое время до истечения срока действия сертификата ЦС его нужно обновлять?
Сертификат издающего ЦС должен обновляться за максимальный срок действия издаваемых сертификатов. В нашем случае срок действия сертификата издающего ЦС 15 лет, а максимальный срок действия издаваемых сертификатов 5 лет (см. конфигурационную таблицу).
Порядок обновления ЦС
В нашей двухуровневой иерархии сертификаты корневого и издающего ЦС имеют одинаковый срок действия. Поэтому, когда вы принимаете решение об обновлении сертификата любого ЦС, необходимо обновлять их вместе. Первым обновляется сертификат корневого ЦС, затем сертификат издающего ЦС.
Генерация ключей при обновлении сертификатов ЦС
При обновлении сертификатов ЦС вам предлагается две опции: использовать существующую ключевую пару или сгенерировать новую:
В диалоговом окне обновления ключевой пары приведены рекомендации Microsoft по выбору ключевой пары. Однако, практика показывает, что эти рекомендации устарели. Следует всегда генерировать новую ключевую пару. При использовании нескольких сертификатов ЦС клиентский модуль построения цепочки сертификатов иногда может ошибиться и выбрать неправильный сертификат. В базе знаний Microsoft отмечены такие проблемы. Примеры статей:
При генерации новой ключевой пары для каждого сертификата будет гарантирован только один путь к корневому сертификату и модуль построения цепочек сертификатов уже не ошибётся.
Общий план развёртывания
Для развёртывания службы сертификатов нам потребуется четыре машины с Windows Server 2021, которые будут выполнять следующие функции:
- Контроллер домена — необходим для функционирования домена Active Directory;
- Веб-сервер — будет обеспечивать доступ к сертификатам ЦС и спискам отзывов для клиентов;
- Корневой ЦС — будет выполнять функции корневого ЦС;
- Подчинённый ЦС — будет выполнять функции издающего ЦС.
Развёртывание PKI будет проходить поэтапно на каждом сервере в том порядке, в котором они указаны выше. Подготовка контроллера домена будет сводиться к обеспечению функций Active Directory, GPO и учётных записей.
Ответы
В общем сам же себе и отвечаю. Для импорта сертификата для ВПН подключения на компьютер не в домене необходимо:
1. создать скрипт с использованием утилиты certutil.exe в котором вы будуте использовать ключ -importpfx (кстати на просторах Инета это почему-то почти нигде не описывается). Правда есть два ньюанса — при импорте сертификата в хранилище компьютера нужно, что бы у пользователя запускающего скрипт были права админа и при последующем импорте сертификата в хранилище пользователя у пользователя выскакивает окно с вопросом об установке сертификата (пришлось для этого использовать утилиту importpfx — искал на гугле).
2. создать с помощью мастера СМАК пакет распространения соединения в котором будет использоваться ранее созданный скрипт. При запуске этого пакета у пользователя без вопросов всё устанавливается и настраивается.
Подготовка веб-сервера
На веб-сервере нам потребуется выполнить следующее: установить службу IIS (если ещё не установлена), создать общую папку и сконфигурировать веб-сайт на использование этой папки.
Для установки службы IIS можно воспользоваться следующей командой:
Install-WindowsFeature -Name Web-Server, Web-WebServer -IncludeManagementToolsСогласно нашей конфигурационной таблице (см. часть 2), для хранения сертификатов ЦС и списков отзыва нам потребуется общая папка с сетевым именем PKI по следующему пути: C:InetPubwwwrootPKIdata
New-Item -ItemType Directory -Path C:InetPubwwwroot -Name PKIdata -Force
New-SmbShare -Path C:inetpubwwwrootPKIdata -Name PKI -FullAccess everyone
После этого нужно выдать права NTFS на запись в эту папку для группы Cert Publishers.
Предварительная конфигурация
Предварительные конфигурационные файлы необходимы для ряда настроек, которые невозможно задать во время установки компонента (ни при помощи графического интерфейса, ни при помощи командной строки или PowerShell). К ним обычно относятся настройки расширений сертификата ЦС.
Например, для настройки расширения сертификата Certificate Policies, необходимо использовать предварительный конфигурационный файл, в котором настраиваются параметры расширения. Для Microsoft ADCS таким файлом является файл CAPolicy.inf, который должен быть расположен по следующему пути: %windir%CAPolicy.inf. С синтаксисом этого файла можно ознакомиться в следующей статье:
. Поскольку никаких специфичных или нестандартных настроек в сертификате корневого ЦС мы делать не будем, поэтому и предварительный конфигурационный файл сейчас нам не потребуется.
Предустановочная конфигурация
Если для корневого ЦС предустановочный конфигурационный файл нам не требовался, то для издающего ЦС он понадобится. В нём мы настроим расширения Certificate Policies и Basic Constraints для сертификата ЦС. Если с политиками всё понятно, то в расширении Basic Constraints мы запретим выдачу сертификатов другим ЦС с издающего ЦС, поскольку у нас двухуровневая иерархия и добавление новых уровней только усложняет нашу структуру и увеличивает время, затрачиваемое на проверку сертификатов клиентами.
- Контроллеры домена практически мгновенно обнаруживают появление ЦС в лесу и даже при отключённой политике автоматической выдачи сами запрашивают себе сертификаты.
- Администраторы сами должны определять какие шаблоны будут использовать в организации.
Поэтому мы сконфигурируем ЦС так, что список шаблонов к выдаче будет пустым. Это возможно сделать только через CAPolicy.inf. В нашем случае он будет иметь следующее содержимое:
Прочие настройки
После того как издающий ЦС установлен и сконфигурирован, убедитесь, что всё прошло без ошибок:
Когда основные параметры проверены, необходимо убедиться в правильной связи иерархии ЦС и доступности всех внешних файлов для клиентов. Для этого на сервере ЦС (а лучше, на рабочей станции, где установлены средства удалённого администрирования ЦС) необходимо запустить оснастку
Enterprise PKI Health
(pkiview.msc). Оснастка автоматически построит текущую иерархию и проверит доступность всех путей для скачивания сертификатов ЦС и списков отзыва. Никаких ошибок быть не должно. Если есть ошибка, необходимо её точно идентифицировать и устранить. В случае успешной настройки оснастка будет выглядеть следующим образом для корневого ЦС:
И для издющего ЦС:
Если вся итоговая конфигурация соответствует ожидаемым значениям и оснастка Enterprise PKI Health не показывает ошибок, это может судить о том, что PKI установлена верно.
Резервное копирование
Вопросы резервного копирования и восстановления после отказа являются отдельной темой. Здесь я лишь отмечу основные моменты, которые следует учесть при планировании стратегии резервного копирования.
Microsoft Active Directory Certificate Services предоставляет инструменты для резервного копирования компонентов ЦС:
С ними можно сделать резервную копию для ключевой пары ЦС и базы данных. Однако эти инструменты не позволяют делать резервную копию настроек ЦС. Эти операции необходимо выполнять вручную. Все настройки ЦС находятся в реестре по следующему пути:
HKLMSystemCurrentControlSetServicesCertSvcПри резервном копировании всегда экспортируйте данную ветку реестра. При восстановлении ЦС сохранённый REG файл импортируется обратно в реестр после установки роли ЦС.
Полный список элементов ЦС, который подлежит обязательному резервному копированию выглядит так:
Этот список не зависит от принятой в вашей компании стратегии резервного копирования, он всегда должен быть включён в список резервных копий.
Рекомендации
После того, как все ЦС установлены, сконфигурированы и их работоспособность проверена, можно приступать к их эксплуатации. В этом разделе я дам несколько полезных рекомендаций, которых следует придерживаться, чтобы предостеречь себя от возможных потенциальных проблем во время эксплуатации PKI.
Скрипт настройки
Для конфигурирования настроек ЦС мы будем использовать BATCH скрипт с использованием утилиты certutil.exe:
Словарь терминов
В этой части серии использованы следующие сокращения и аббревиатуры:
Установка издающего цс
Как и в случае с корневым ЦС, установка издающего ЦС включает в себя четыре этапа:
- Подготовка предустановочных конфигурационных файлов (CAPolicy.inf);
- Установка компонента ЦС;
- Выполнение постустановочной конфигурации;
- Проверка установки и конфигурации.
Установка компонента цс
Прежде всего необходимо добавить установочные компоненты для AD CS:
Install-WindowsFeature AD-Certificate, ADCS-Cert-Authority -IncludeManagementToolsПосле этого посмотрим на установочную таблицу, чтобы определить параметры установки:
В таблице я выделил только те параметры, которые задаются в процессе установки. Остальные параметры будут настраиваться после установки. Исходя из этих данных сформируем параметры для командлета
Install-AdcsCertificationAuthority -CACommonName "Contoso Lab Issuing Certification authority" `
-CADistinguishedNameSuffix "OU=Division Of IT, O=Contoso Pharmaceuticals, C=US" `
-CAType EnterpriseSubordinateCa `
-CryptoProviderName "RSA#Microsoft Software Key Storage Provider" `
-KeyLength 4096 `
-HashAlgorithmName SHA256После выполнения этой команды будет выведено сообщение о том, что установка ЦС не завершена и для её завершения необходимо отправить сгенерированный запрос (находится в корне системного диска) на вышестоящий ЦС и получить подписанный сертификат. Поэтому находим файл с расширением «.req» в корне системного диска и копируем его на корневой ЦС и на корневом ЦС выполняем следующие команды:
Установка корневого цс
Фактическая установка ЦС будет включать в себя несколько этапов:
- Подготовка предустановочных конфигурационных файлов (CAPolicy.inf);
- Установка компонента ЦС;
- Выполнение постустановочной конфигурации;
- Проверка установки.
Перед установкой корневого ЦС, необходимо ещё раз вернуться к конфигурационным таблицам:
В таблице я выделил только те параметры, которые задаются до и в процессе установки. Остальные параметры будут настраиваться после установки.
Шаблоны сертификатов
Наряду с установкой издающего ЦС, в Active Directory устанавливается набор уже готовых шаблонов сертификатов. Их можно просмотреть в оснастке
Certificate Templates MMC
(certtmpl.msc). Рекомендации по шаблонам сертификатов:
Использование готовых шаблонов сертификатов
Я рекомендую использовать их копии, даже если вы не планируете вносить в них изменения. Для создания копии шаблона выберите в списке подходящий шаблон, в контекстном меню выберите Duplicate Template и создайте его копию. Целесообразно в имя шаблона включить название компании, чтобы отличить предустановленный шаблон от вами созданного.
Версия шаблона
Начиная с Windows Server 2021, интерфейс создания шаблона несколько изменился. В самом начале появляется окно с выбором версии ОС на ЦС и предполагаемом клиенте:
Если у вас используются современные версии ОС (например, Windows 7 и выше), может появиться желание выставить настройки на максимум. Если вы не уверены, что ваше приложение совместимо с CNG (Cryptography Next Generation), следует использовать настройки, которые приведены на картинке.
Если вы выставляете ОС сервера и клиента выше, чем Windows Server 2003/Windows XP, шаблон будет использовать криптографию несовместимую с этими приложениями. Например, большинство приложений, написанных на .NET, семейство продуктов System Center, службы федераций (AD FS) и т.д. не смогут использовать ключи таких сертификатов (но проверять смогут).
Успешно такие сертификаты смогут использовать приложения, которые используют не .NET, а нативные функции CryptoAPI. К таким приложениям можно отнести, например, IIS, Remote Desktop Services.Поля Subject и Subject Alternative Names
Существует два метода заполнения поля Subject и расширения Subject Alternative Names: автоматический и ручной. Это настраивается в настройках шаблона сертификата, во вкладке Subject Name.
Если выбран второй пункт (как на картинке), ЦС игнорирует имя субъекта из запроса сертификата и заполняет эти поля из свойств учётной записи пользователя или устройства, которое запрашивает сертификат. В ряде случаев это не подходит (например, сертификаты для внутренних веб-сайтов) и имя субъекта заполняется из значения в запросе сертификата.
Это необходимо затем, что имя для сертификата никак не проверяется. Если этот момент не контролировать, пользователь может запросить сертификаты на любое имя и скомпрометировать весь лес Active Directory. Вряд ли вы позволите рядовому пользователю получить сертификат на имя администратора.
После требования одобрения запроса менеджером сертификатов на ЦС, каждый запрос с явным указанием субъекта сертификата будет попадать на ЦС в папку Pending Requests и не будет подписан, пока оператор ЦС не изучит его содержимое и не примет решение о выпуске. Т.е. каждый такой запрос необходимо вручную проверять на содержимое и убедиться, что в запросе указаны верные и допустимые имена. В противном случае запрос должен быть отклонён.
Права на шаблоны сертификатов
Шаблоны сертификатов в Active Directory хранятся в разделе configuration naming context, который реплицируется между всеми контроллерами домена в лесу. Поэтому для назначения прав на шаблоны сертификатов можно использовать только глобальные и универсальные группы. Избегайте назначения прав отдельным пользователям и устройствам.
Итоговая настройка
По аналогии с корневым ЦС, нам потребуется сконфигурировать ряд параметров на издающем ЦС. Для этого мы снова напишем BATCH скрипт с использованием утилиты certutil.exe. Но прежде всего посмотрим установочную таблицу и выясним параметры, которые нам необходимо настроить:
Аналогичная таблица составляется и для издающего ЦС.
За основу мы возьмём скрипт с корневого ЦС и изменим только отдельные фрагменты:
