Воскресенье, 18 ноября 2018 17:37

Разворачиваем Центр сертификации в домене(PKI)

Автор
Оцените материал
(0 голосов)

Конфигурация площадки

Домен: TEST.LOCAL

Серверы: (Автономный) RootCA; (Предприятие) SRV03.TEST.LOCAL

Сетевое хранилище DFS: \\test.local\SOFT\PKI

WEB сервер: совмещён с сервером ЦС домена SRV03.TEST.LOCAL

Подготовка сетевого хранилища

Создать сетевую папку на файловом сервере и подключить к пространству имён. Назначить права на папку: Доступ - Все (чтение/запись); Безопасность - TEST\SRV03$ (чтение/запись)(учётная запись сервера ЦС в домене)

Подготовка WEB сервера

На серверах DNS (в случае домана - контроллеры домена) создать запись pki.test.local ведущую на IP адрес WEB сервера (в нашем случае SRV03.TEST.LOCAL)

Создасть сайт pki.test.local на WEB сервере, указав в качестве физического сетевой путь \\test.local\SOFT\PKI

Для возможности работы с сетевой папкой необходимо запускать сайт как сетевую службу. Для этого в разделе Пулы приложений - выбрать приложение созданого сайта PKI - Дополнительные параметры. Параметр Модель процесса - Удостоверение установить NetworkService. Перейти в настройки сайта - Проверка подлинности - Анонимная проверка подлинности - Изменить и установить Удостоверение пула приложений

Чтобы IIS сервер мог распознавать DeltaCRL необходимо добавить возможность чтения знака "+". Для этого в оснастке IIS нужно в настройках сайта открыть Фильтрация запросов - Изменить параметры и установить Разрешить двойное преобразование

Источник: https://windowsnotes.ru/iis/application-pool-identities-v-iis/

Установка корневого центра сертификации

Предполагается, что компьютер с именем RootCA установлен, обновлён и сконфигурированы параметры безопасности. Данный компьютер будет выполнять роль корневого центра сертификации (Root Certification Authority). Поскольку корневой CA — самая важная точка в иерархии PKI, этот сервер будет нормально выключен и включаться только для следующих целей:

  • Отправка новой заявки на сертификат;
  • Публикация CRL;
  • Обновление сертификата самого CA;
  • Установка обновлений безопасности.

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

После установки Центра сертификации (из стостава AD CS) необходимо её настроить.

  • Автономный ЦС
  • Корневой ЦС
  • Создать новый закрытый ключ
  • RSA#Microsoft Software Key Storage Provider; длину ключа в 2048 бит и алгоритм подписи в SHA1
  • Имя ЦС: ROOT-TEST-CA
  • Период действия сертификата = 15 лет
  • Период публикации отозванных сертификатов = 1 год

Последующая настройка выполняется с помощью пакетного файла

:: Создаём папку в корне диска C, где будут храниться CRT и CRL файлы
md C:\CertData
:: Задаём точки публикации CRL файлов и ссылки, публикуемые в издаваемых сертификатах. То же самое и для CRT файлов.
certutil -setreg CA\CRLPublicationURLs "65:%windir%\system32\CertSrv\CertEnroll\%%3%%8%%9.crl\n65:C:\CertData\%%3%%8%%9.crl\n2:http://pki.test.local/%%3%%8%%9.crl"
certutil -setreg CA\CACertPublicationURLs "1:%windir%\system32\CertSrv\CertEnroll\%%1_%%3%%4.crt\n2:http://pki.test.local/%%3%%4.crt"
:: Поскольку мы не можем управлять публикацией CRT файлов, мы его
:: переименовываем в нужное имя и копируем в папку CertData
ren %windir%\system32\CertSrv\CertEnroll\*.crt ROOT-TEST-CA.crt
copy %windir%\system32\CertSrv\CertEnroll\ROOT-TEST-CA.crt C:\CertData
:: задаём срок действия издаваемых сертификатов равным 15 лет
certutil -setreg CA\ValidityPeriodUnits 15
certutil -setreg CA\ValidityPeriod "Years"
:: Задаём параметры публикации CRL (повторяем, что было указано в CAPolicy.inf)
certutil -setreg CA\CRLPeriodUnits 12
certutil -setreg CA\CRLPeriod "Months"
certutil -setreg CA\CRLOverlapPeriod "Months"

certutil -setreg CA\CRLOverlapUnits 1
certutil -setreg CA\CRLDeltaPeriodUnits 0
certutil -setreg CA\CRLDeltaPeriod "Days"
certutil -setreg CA\CRLOverlapPeriod "Weeks"
certutil -setreg CA\CRLOverlapUnits 2
:: Примечание: Данные параметр может быть изменены и через реестр в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\
:: включаем полный аудит для сервера CA
certutil -setreg CA\AuditFilter 127
:: Отключаем генерацию кросс-сертификатов
certutil -setreg ca\CRLFlags +CRLF_DISABLE_ROOT_CROSS_CERTS
:: Конфигурируем ЦС для включения истёкших отозванных сертификатов в списки отзыва
certutil –setreg ca\CRLFlags +CRLF_PUBLISH_EXPIRED_CERT_CRLS
:: Включаем поддержку сертификатов OCSP Response Signing на Offline CA:
certutil -v -setreg policy\editflags +EDITF_ENABLEOCSPREVNOCHECK
net stop certsvc && net start certsvc
:: Публикуем новый CRL в новую локацию.
certutil -CRL

Установка издающих центра сертификации

После установки Центра сертификации (из стостава AD CS) необходимо её настроить.

  • ЦС предприятия
  • Подчиненный ЦС
  • Создать новый закрытый ключ
  • RSA#Microsoft Software Key Storage Provider; длину ключа в 2048 бит и алгоритм подписи в SHA1
  • Имя ЦС: TEST-CA
  • Создать запрос сертификата в файле на конечном компьютере
  • Период действия сертификата = 10 лет
  • Период публикации отозванных сертификатов = 3 месяца

Скопировать файл запроса на сервер RootCA и выпустить по немуц сертификат

  • открыть Панель управления-Администрирование-Центр сетрификации
  • выбрать сервер-все задачи-Выдать новый запрос... и выбрать файл запроса
  • перейти в подраздел запросы в ожидании
  • выбелить запрос, затем все задачи - выдать
  • перейти в подраздел выданные сертификаты и открыть сетрификат
  • на вкладке Состав нажать копировать в файл и сохратить в формате .p7b (TEST-CA.p7b)

Скопировать файл выданного сертификата (TEST-CA.p7b) и файлы из папки C:\CertData (ROOT-TEST-CA.crt и ROOT-TEST-CA.crl) в сетевое хранилище \\test.local\SOFT\PKI

После этого сервер RootCA можно выключить.

Зарегистрировать файлы с корневого ЦС на подчинённом сервере (запускать с привилегиями Администратора)

certutil –addstore Root \\test.local\SOFT\PKI\ROOT-TEST-CA.crt
certutil –addstore Root \\test.local\SOFT\PKI\ROOT-TEST-CA.crl
certutil -dspublish -f \\test.local\SOFT\PKI\ROOT-TEST-CA.crt RootCA

Если ошибок не возникло, то установить сертификат ЦС (выданный RootCA)

  • открыть Панель управления-Администрирование-Центр сетрификации
  • выбрать сервер-все задачи-Установить сертификат ЦС и выбрать файл (TEST-CA.p7b)
  • после успешной установки файл .p7b можно удалить

Выполнить пакетный файл настройки для дальнейшей настройки

:: Задаём точки публикации CRL файлов и ссылки, публикуемые в издаваемых сертификатах. То же самое и для CRT файлов.
certutil -setreg CA\CRLPublicationURLs "65:%windir%\system32\CertSrv\CertEnroll\%%3%%8%%9.crl\n65:\\test.local\SOFT\PKI\%%3%%8%%9.crl\n6:http://pki.test.local/%%3%%8%%9.crl"
certutil -setreg CA\CACertPublicationURLs "1:%windir%\system32\CertSrv\CertEnroll\%%1_%%3%%4.crt\n2:http://pki.test.local/%%3%%4.crt"
:: Поскольку мы не можем управлять публикацией CRT файлов, мы его
:: переименовываем в нужное имя и копируем в папку CertData
ren %windir%\system32\CertSrv\CertEnroll\*.crt TEST-CA.crt

copy %windir%\system32\CertSrv\CertEnroll\TEST-CA.crt \\test.local\SOFT\PKI
:: задаём максимальный срок действия издаваемых сертификатов равным 5 лет
certutil -setreg CA\ValidityPeriodUnits 5
certutil -setreg CA\ValidityPeriod "Years"
:: Задаём параметры публикации CRL (повторяем, что было указано в CAPolicy.inf)
certutil -setreg CA\CRLPeriodUnits 3
certutil -setreg CA\CRLPeriod "Months"
certutil -setreg CA\CRLDeltaPeriodUnits 1
certutil -setreg CA\CRLDeltaPeriod "Months"
certutil -setreg CA\CRLOverlapPeriod "Days"
certutil -setreg CA\CRLOverlapUnits 10
:: Включаем наследование Issuer Statement в издаваемых сертификатах
certutil -setreg Policy\EnableRequestExtensionList +"2.5.29.32"
:: включаем полный аудит для сервера CA
certutil -setreg CA\AuditFilter 127
:: задаём контекст конфигурации для сервера CA. Контекст конфигурации
:: должен указывать на *корневой домен* текущего леса.
certutil -setreg CA\DSConfig "CN=Configuration,DC=test,DC=local"
:: публикуем сертификат CA в AD
certutil -dspublish -f \\test.local\SOFT\PKI\TEST-CA.crt Subca
certutil -dspublish -f \\test.local\SOFT\PKI\TEST-CA.crt NTAuthCA
net start certsvc
:: Публикуем новый CRL в новую локацию.
certutil –CRL

Проверка PKI предприятия

На сервере ЦС предприятия запустить оснастку PKIView.msc и проверить весь пусть регистрауии (Корневой и подчинённый серверы) - все пути AIA и CDP должны указывать на сайт http://pki.test.local

P.S.

Для того, чтобы теперь действующий на сервере SRV03.TEST.LOCAL WEB сервер корректно работал в домене по протоколу HTTPS нужно выпустить ему доменный сертификат.

Открываем Панель управления - Диспетчер службы IIS и выбираем WEB сервер (SRV03). Открываем Сертификаты сервера и проверяем текущие сертификаты. Сертификат сервера SRV03 на данный момент самоподписанный и поэтому не будет автоматически признаваться в домене.

Выбираем действие Создать сертификат домена... и заполняем данные. Полное имя должно соответствовать адресу требуемого сайта - в нашем случае будет SRV03.TEST.LOCAL, остальные поля произвольно. Далее выбираем сервер сертификации - в нашем случае будет TEST-CA\SRV03.TEST.LOCAL и назначаем Полное имя - оно будет отображаться как псевдоним в Диспетчере службы IIS.

После выпуска сертификата его нужно закрепить за основным сайтом сервера. Для этого нужно выбрать сайт Default Web Site - Изменить привязки, выбрать привязку https и в его настройках выбрать новый созданный сертификат.

Источники: https://www.sysadmins.lv/blog-ru/ustanavlivaem-certification-authority-podvedenie-itogov.aspx
http://www.alexxhost.ru/2011/05/pki.html
https://habr.com/company/microsoft/blog/348944/

Полезные команды:

:: Публикуем новый CRL в новую локацию.
certutil –CRL

:: Просмотр PKI структуры
PKIView.msc

:: Менеджер сертификатов
certmgr.msc

добавить сертификаты в хранилище

:: импортируем сертификат рутового ЦА
certmgr.exe -add -c RootCA.cer -s -r localMachine Root
:: импортируем сертификат выдающего ЦА
certmgr.exe -add -c CA.cer -s -r localMachine CA
:: импортируем сертификат в хранилище компа
certutil.exe -importpfx -p password VPN_Cert.pfx
:: импортируем сертификат в хранилище пользователя
importpfx.exe -f VPN_Cert.pfx -p password -t User -s My

список названий хранилищ сертификатов:
My - Личные
Root - Доверенные корневые центры сертификации
Trust - Доверительные отношения в предприятии
CA - Промежуточные центры сертификации
AuthRoot - Сторонние корневые центры центры сертификации
TrustedPublisher - Довереннные издатели
TrustedPeople - Доверенные лица
AddressBook - Другие пользователи

Прочитано 81 раз Последнее изменение Воскресенье, 18 ноября 2018 17:41

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


Защитный код
Обновить

Яндекс.Метрика

По всем вопросам, связанным с сайтом просьба обращаться на e-mail: pontin@mail.ru