- Автоматический запрос сертификатов
- Веб-службы регистрации сертификатов
- Выбор нового сертификата взаимодействия между сервисами (service communication certificate)
- Выпуск сертификата
- Запрос сертификата с альтернативным именем
- Запрос через консоль mmc
- Запрос через утилиту certreq
- Изменение ssl сертификата в конфигурации
- Обобщенные лучшие практики
- Общие представления о pki
- Проверка корректности установки новых сертификатов
- Ручная установка сертификата корневого цс
- Установка сертификата в хранилище сертификатов компьютера
- Через mmc
- Через командную строку
- Через свойства сертификата
- Заключение
- Проверка отзыва сертификатов
Автоматический запрос сертификатов
От центра сертификации нет толку, если клиентские компьютеры в вашей сети не имеют к нему доверия и/или не получают сертификаты. При установке ЦС в домене Active Directory по умолчанию должны создаваться групповые политики, которые прописывают доверие клиентов к корневому ЦС и автоматический запрос сертификатов компьютера у него.
Веб-службы регистрации сертификатов
Они же Certificate Enrollment Web Services, если по-английски. Весьма полезная роль, которая позволяет:
- запрашивать сертификаты пользователями без участия администратора
- предоставлять по требованию сертификат корневого ЦС
- выполнять особые уже подготовленные запросы (Custom Request), например для веб-серверов под управлением Linux или других сетевых устройств
- делать это все через интернет
- сам Web Enrollment может работать на отличном от ЦС компьютере, что повышает безопасность корневого ЦС
Установка и настройка Web Enrollment проста и тривиальна за исключением следующих моментов
- в случае установки Web Enrollment на отличный от ЦС компьютер, необходимо обязательно выполнить шаги, описанные в статье TechNet Configuring Delegation Settings for the Certificate Enrollment Web Service Account, иначе служба не будет работать, выдавая следующую ошибку:
Произошла непредвиденная ошибка: Служба центра сертификации (ЦС) не запущена.
An unexpected error has occurred: The Certification Authority Service has not been started.
- та же ошибка будет выдаваться, если Web Enrollment работает на одном сервере с ISA Server / Forefront TMG, в их системных правилах нужно отключить Enforce strict RPC compliance и разрешить протокол RPC во внутреннюю сеть.
- при публикации Web Enrollment в интернете необходимо включить требование работы через SSL для веб-приложения CertSrv в консоли IIS
Выбор нового сертификата взаимодействия между сервисами (service communication certificate)
После импорта нужного нам сертификата в консоли администрирования AD FS необходимо указать, что для взаимодействия между сервисами необходимо использовать именно этот сертификат:
1. Запустим оснастку управления AD FS (AD FS Management) и перейдем в узел управления сертификатами:
2. Справа в меню действий выбираем пункт “Set Service Communication Certificare…”.
3. В появившемся диалоговом окне необходимо выбрать актуальный сертификат и нажать “OK”.
Выпуск сертификата
Мы не будем рассматривать непосредственно процесс выпуска сертификата. Однако, отмечу, что в нашем случае был выпущен бесплатный сертификат от Let’s Encrypt, как рассказано в этой статье.
Запрос сертификата с альтернативным именем
Насущный вопрос при публикации внутренних служб предприятия в интернете — создание сертификатов со списком альтернативных имен DNS (Subject Alternative Name, SAN).
По умолчанию ЦС на Windows Server не настроен на выдачу сертификатов, содержащих SAN. Чтобы включить эту функцию на компьютере с ЦС нужно выполнить:
certutil -setreg policyEditFlags EDITF_ATTRIBUTESUBJECTALTNAME2net stop certsvcnet start certsvc
Запрос через консоль mmc
Начиная с Windows Server 2008 появилась возможность запросить сертификат с SAN через MMC-консоль Сертификаты, для этого…
- В консоли управления ЦС для шаблона сертификата Веб-сервер назначить права на запрос и чтение для учетки компьютера, запрашивающего сертификат.
- Компьютер, с которого создается запрос, должен входить в домен, в котором опубликован ЦС
- Создать запрос по шаблону веб-сервера → в свойствах запроса указать список альтернативных DNS-имен на вкладке Субъект → Дополнительное имя → DNS.
Запрос через утилиту certreq
Более гибким и универсальным способом запроса сертификатов с SAN является следующий, использующий утилиту certreq. Чтобы создать сертификат нужно действовать по следующему алгоритму:
Изменение ssl сертификата в конфигурации
Далее нам необходимо изменить сертификат в конфигурации AD FS.
Для этого нам необходимо знать отпечаток нашего нового сертификата:
Изменим SSL сертификат в конфигурации AD FS:
Set-AdfsSslCertificate –Thumbprint 62ae53ebc1efc7e9db916fced37d1e5840b7acf9Обобщенные лучшие практики
Приведу пример рациональной реализации PKI на предприятии для поддержки передовых служб Windows Server 2008 R2
- На контроллере домена развернут корневой центр сертификации
- Если организации велика, то создано несколько подчиненных ЦС, выделенных для определенных целей (по назначению сертификата, по филиалу организации, для распределения нагрузки…)
- В групповых политиках настроено доверие к корневому ЦС и автоматический запрос сертификатов доменный компьютеров
- На пограничном компьютере-члене домена развернуты и опубликованы с помощью Forefront TMG в интернете службы:
- Web Enrollment для установки сертификата ЦС и запроса личных сертификатов с недоменных компьютеров
- Online Responder для проверки отзыва сертификатов по протоколу OCSP
- Опубликованы в интернете с использованием сертификатов с SAN следующие сетевые службы, опирающиеся на использование сертификатов и проверку их отзыва:
- Remote Desktop Gateway
- Outlook Web Access
- DirectAccess
- SharePoint
Общие представления о pki
Чем более интегрированной, сложной и защищенной становится инфраструктура на Windows Server, тем больше она полагается в добавок к традиционной Active Directory на PKI (Private Key Infrastructure, переводят как инфраструктура открытого ключа, однако если переводить дословно, то закрытого) для обеспечения доверительных отношений и проверки подлинности между компьютерами, пользователями и службами. Active Directory Certificate Services — это реализация PKI от Microsoft, которая состоит из следующих элементов:
- Центр сертификации (ЦС, Certification Authority), корневой и подчиненные
- отношения всеобщего доверия к ЦС
- выдаваемые ЦС сертификаты для компьютеров, пользователей и служб
- различные службы поддержки PKI
- списки отзывов сертификатов (CRL)
- сетевой ответчик (Online Responder, более прогрессивная альтернатива CRL)
- Web Enrollment (средство запроса сертификатов через Web)
Проверка корректности установки новых сертификатов
Проверить корректно ли установились все необходимые сертификаты или нет можно указанным ниже способом.
- Сначала проверим – корректно ли установился SSL сертификат:
Get-AdfsSslCertificateМы видим, что отпечаток сертификата соответствует тому сертификату, который мы установили ранее, т.е. SSL сертификат установился корректно.
2. Далее проверим сертификат (Service Communication):
Get-AdfsCertificate -CertificateType Service-CommunicationsКак видно из скриншота выше – установлен именно тот сертификат, который нам нужен.
3. Последним шагом можем выполнить тестовый вход. Для этого в любом браузере перейдите по следующему пути:
Ручная установка сертификата корневого цс
Если в среде Active Directory и локальной сети доверие к корневому центру сертификации настраивается автоматически, то для доверия к ЦС со стороны недоменных удаленных компьютеров необходимо установить сертификат ЦС в их хранилище Доверенные корневые центры сертификации.
Иначе либо будут выдаваться предупреждения о потенциальной опасности подписанного неизвестно кем сертификата, либо вообще соединения с таким сервером будут отклонятся, как, например, в случае с Remote Desktop Services Gateway будет выдаваться такая ошибка:
Установка сертификата в хранилище сертификатов компьютера
После того, как сертификат был выпущен его необходимо установить в локальное хранилище сертификатов компьютера. Для этого выполним импорт сертификата:
1. Запустим мастер импорта и выберем локальное хранилище компьюетра:
2. Укажем путь до файла с сертификатом:
3. Укажем пароль к PFX файлу и скажем, что мы сделаем закрытый ключ экспортируемым:
4. Выберем опцию автоматического определения контейнера в хранилище сертификатов компьютера. В таком случае сертификат импортируется в контейнер “Personal“. Это именно то, что нам нужно:
5. Завершим процедуру импорта:
6. В случае успешного импорта мастер импорта сертификата сообщит нам об этом:
Так же мы увидим наш сертификат в контейнере “Личное” локального хранилища сертификатов компьютера:
Через mmc
Открыть MMC с правами администратора » добавить оснастку Сертификаты » выбрать в качестве области Локальный компьютер » импортировать нужный сертификат в хранилище Доверенные корневые центры сертификации. Более подробно в статье TechNet Manage Trusted Root Certificates.
Через командную строку
Потребуется утилита CertMgr, с помощью нее нужно выполнить следующую команду:
certmgr.exe -add -c “с:pathtocert.crt” -s -r localMachine root
Через свойства сертификата
Запустить командную строку с правами админа » вызвать в нейс:pathtocert.crt» откроется окно свойств сертификата » нажать кнопку Установить » отметить галку Показывать физические хранилища » выбрать хранилище для установки сертификата Доверенные корневые центры сертификации » Локальный компьютер.
Заключение
В данной публикации мы выполнили замену SSL сертификата на сервер с AD FS, а также замену сертификата для Service Communication.
Затем мы выполнили шаги для проверки – корректно ли установились все необходимые нам сертификаты или нет.
Проверка отзыва сертификатов
Некоторые сетевые службы (удаленные рабочие столы, DirectAccess, L2TP и SSTP VPN), которые используют сертификаты для проверки подлинности сервера, требуют проверки этих сертификатов на легитимность (но отозваны ли они центром сертификации). В окружении локальной сети с такими проверками проблем не возникает, так как списки отзыва сертификатов опубликованы в Active Directory и по локальным адресам центра сертификации.
Ситуация меняется, если легитимность сертификата пытаются проверить из интернета, где, естественно, ни Active Directory, ни локальные адреса центров сертификации не доступны. И самое неприятное в том, что доверие системы к сертификату, выданному доверенным центром, но не проверенному на легитимность, еще ниже, чем к неизвестному или самоподписанному. Например соединение с удаленным рабочим столом отклоняется, выдавая ошибку:
Не удалось проверить, не был ли отозван этот сертификат.
A revocation check could not be perfomed for the certificate.
Для решения проблемы доступности проверки отзыва сертификатов из интернета необходимо опубликовать любую из следующих служб:
Для работы обоих вариантов необходимо, чтобы в центре сертификации были заблаговременно настроены доступные из интернета адреса этих служб, так как эти адреса жестко прописываются в каждом выдаваемом сертификате.
