Выпуск wildcard сертификата в Windows Certification Authority
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в рунете Pyatilistnik.org. В прошлый раз мы с вами произвели настройку сети в CentOS 7.4. В сегодняшней публикации я разберу ситуацию, когда вам необходимо выпустить на вашем Windows центре сертификации, сертификат вида Wildcard. Мы поговорим, где применяется такой сертификат. Думаю, что данная информация найдет своего читателя.
Что такое Wildcard сертификат
Ранее я вам рассказывал, что из себя представляют SSL сертификаты и там я описывал принцип работы wildcard, давайте я напомню его определение. Wildcard (Подстановочный сертификат) - это цифровой сертификат, который применяется к домену и всем его поддоменам. Обозначение подстановочного знака состоит из звездочки и точки (*.) перед доменным именем. Сертификаты Secure Sockets Layer ( SSL ) часто используют подстановочные знаки для расширения шифрования SSL для поддоменов. Обычный SSL-сертификат работает на одном домене, например root.pyatilistnik.org. Wildcard SSL сертификат для * .pyatilistnik.org также защищает mail.pyatilistnik.org, vpn.pyatilistnik.org, payment.pyatilistnik.org и т.д.
Распространение одного сертификата на субдомены вместо покупки отдельных сертификатов может сэкономить деньги и упростить администрирование. Недостатком, однако, является то, что если сертификат должен быть отозван на одном поддомене, он должен быть отозван и на всех остальных. Например, если поддомен, такой как payment.pyatilistnik.org, скомпрометирован, то это касается и поддоменов mail и vpn . Приобретение отдельных сертификатов может стоить немного больше и потребовать больше администрирования, но это также гарантирует, что каждый поддомен индивидуально защищен.
Очень часто я встречал использование Wildcard сертификата на разных сайтах, развернутых на IIS, в системах внутреннего документооборота.
Как выпустить Wildcard SSL сертификат в Active Directory
И так у вас есть развернутый домен Active Directory, внутри домена есть инфраструктура по выпуску сертификатов, через Windows роль "Центр Сертификации". Поступила задача выпустить для вашего домена Wildcard SSL сертификат, чтобы использовать его на разных проектах предприятия. Что вы делаете, открываете окно "Выполнить" и пишите там слово mmc.
У вас откроется окно для добавления оснасток mmc. Нажмите меню "Файл - Добавить или удалить оснастку".
Находим в левом разделе "Доступные оснастки" запись "Сертификаты" и нажимаем "Добавить".
Выбираем пункт "Учетной записи компьютера" и нажимаем далее.
Оставляем, эта оснастка управляет "Локальным компьютером" и нажимаем готово.
Видим, что в корень консоли был добавлен пункт "Сертификаты", нажимаем "Ok".
Следующим шагом, переходим в раздел "личное - Сертификаты" и щелкаем по ним правой кнопкой мыши, из контекстного меню выбираем пункт "Все задачи (All Tasks) - Дополнительные операции (Advanced Options) - Создать настраиваемый запрос (Create Custom Request)"
У вас откроется мастер регистрации сертификатов, на первом экране просто нажимаем "Далее".
В выборе политики регистрации сертификатов выбираем пункт "Продолжить без политики регистрации (roceed without enrolment Policy)".
В шаблоне выставляем "Старый ключ (без шаблона)", формат записи "PKCS#10" и нажимаем далее.
Раскрываем подробности и щелкаем по кнопке "Свойства".
У вас откроется дополнительная форма со свойствами запрашиваемого сертификата. В понятном имени задаем, как будет вам удобно идентифицировать ваш сертификат, я подпишу его *.root.pyatilistnik.org, в описании можете задать Wildcard SSL сертификат для домена root.pyatilistnik.org.
Переходим на вкладку "Субъект", это самое важное в настройке Wildcard сертификата. Тут задается с какими доменными именами будет работать SSL, его поля. Задаваемые поля:
- Общее имя (Common Name) - Наименование сертификата. Это поле используется для идентификации сертификата. Добавление * перед именем домена указывает на подстановочный сертификат для этого домена. Я пропишу *.root.pyatilistnik.org.
- Страна (Country) - пишем RU и добавляем на право
- Подразделение (Organizational Unit) - например, пишем IT
- Область (State) - Я пишу Moscow
- Размещение (Location) - Я пишу Moscow
- Организация (Organization) - Я пишу Pyatilistnik Inc
Не забывайте в дополнительных именах указать "Службы DNS", где пропишите по очереди *.pyatilistnik.org и pyatilistnik.org или как для 4-шл уровня *.root.pyatilistnik.org и root.pyatilistnik.org.
В противном случае вы будите после установки сертификата получать в браузерах ошибку SSL_ERROR_BAD_CERT_DOMAIN.
Переходим на вкладку "Расширения (Extensions)", тут мы зададим под, что мы будем использовать ваш Wildcard SSL сертификат, так называемые OID (Оиды). Раскрываем пункт "Использование ключа", из левой панели переносим вот такие пункты:
- Цифровая подпись (Digital Signature)
- Шифрование ключей (Key encipherment)
Так же при необходимости можете открыть "Расширенное использование ключа", тут много дополнительных возможностей:
- Проверка подлинности сервера
- Проверка подлинности клиента
- Подписание кода
- Защищенная электронная почта
- Установка метки времени
- Подписывание списка доверия (Microsoft)
- Установка метки времени (Microsoft)
- Конечная система IP-безопасности
- Окончание туннеля IP-безопасности
- Пользователь IP-безопасности
- Шифрующая файловая система (EFS)
- Проверка драйверов оборудования Windows
- Проверяет системные компоненты Windows
- Проверка системных компонентов OEM Windows
- Встроенная проверка системных компонентов Windows
- Лицензии пакета ключей
- Проверка сервера лицензий
- Вход со смарт-картой
- Цифровые права
- Квалифицированное подчинение
- Восстановление ключа
- Подписывание документа
- IKE-посредник IP-безопасности
- Восстановление файлов
- Подпись корневого списка
- Все политики применения
- Почтовая репликация службы каталогов
- Агент запроса сертификата
- Агент восстановления ключей
- Архивация закрытого ключа
- Бессрочная подписка
- Подписание OCSP
- Любая цель
- Проверка подлинности центра распространения ключей
- Подписание кода режима ядра
- Использование списка доверия сертификатов
- Автор подписки списка отозванных сертификатов
- Ранний запуск антивредного драйвера
- Список запрещенных
- Расширение HAL
- Сертификат ключа подтверждения
- Сертификат платформы
- Сертификат ключа удостоверения аттестации
- Компонент наборов средств Windows
- Проверка Windows RT
- Нестрогая проверка защищенного процесса
- Компонент TCB Windows
- Проверка защищенного процесса
- Магазин Windows
- Генератор динамического ключа
- microsoft Publisher
- Сторонний компонент приложения для Windows
- Проверка программного расширения Windows
- Подпись предварительной сборки
- Аттестационная проверка Драйверов оборудования Windows
- Многое другое
Переходим на вкладку "закрытый ключ (private key)". В разделе "Параметры ключа" выставите его размер, у меня это будет 4096 байт, обязательно поставьте галку "Сделать закрытый ключ экспортируемым (Make private key exportable)"
При необходимости вы можете задать тип ключа в вашем Wildcard SSL. Тут будет два варианта:
- Обмен (Exchange) - относится к обмену ключами шифрования. С помощью S/MIME отправитель шифрует электронную почту с помощью открытого ключа получателя, а получатель расшифровывает сообщение своим закрытым ключом. Exchange = шифровать ключи сессии
- Подпись (Signature) - означает подтверждение личности отправителя. Само сообщение не зашифровано, однако, если сообщение подделано во время передачи, оно делает недействительной подпись. Для наших целей нам необходимо подтвердить свою личность на удаленном сервере, поэтому мы будем использовать Подпись. Signature = создать цифровую подпись
Достаточно будет оставить значение по умолчанию (Подпись), второй режим часто используют в VPN построениях. Нажимаем "Ok".
В окне сведения о сертификате нажимаем далее.
Вас попросят указать имя файла и где его сохранить, оставляем формат файла в виде "base 64". Base 64 - это метод кодирования, разработанный для использования с безопасными/многоцелевыми расширениями почты Интернета (S/MIME), который является популярным, стандартным методом для передачи двоичных вложений через Интернет.
Двоичные данные - DER (отличительные правила кодирования) для ASN.1, как определено в Рекомендации X.509, может использоваться центрами сертификации, которые не работают на компьютерах под управлением Windows Server 2003, поэтому он поддерживается для обеспечения совместимости. Файлы сертификатов DER используют расширение .cer.
В результате вы получите с вашим CSR запросом. Откройте данный файл с помощью любого текстового редактора и скопируйте его содержимое. Далее вы переходите в веб интерфейс вашего центра сертификации по адресу:
Выбираете пункт "Request a certificate".
Далее нажимаем "advanced certificate request"
В поле "Base-64-encoded certificate request (CMC or PKCS #10 or PKCS #7):" вставляем ваш CSR запрос, выбираем шаблон в поле "Certificate Template" я выбираю "Web Server". После чего нажимаем "Submit".
Скачиваем ваши сертификат, это пункт "Download certificate", так же можете скачать цепочку в формате p7b, если нужно чтобы еще были корневые сертификаты.
Далее в оснастке сертификаты, открываем раздел "Личное - Сертификаты", щелкаем по ним правым кликом и выбираем пункт "Все задачи - импорт"
В мастере импорта просто нажимаем далее
Через кнопку "Обзор" укажите ваш сертификат в формате cer.
Нажимаем далее
Помещаем его в личное
В итоге вы увидите, что импорт успешно выполнен.
Далее у вас появится ваш сертификат, щелкаем по нему правым кликом и экспортируем его. Ставим, что будем экспортировать, для этого выставите галку "да, экспортировать закрытый ключ". На выходе вы получите pfx архив со всеми ключами, который потом можно использовать.
очень легко без установки вы можете просматривать состав вашего pfx архива в keytool или KeyStore Explore
На этом у меня все, мы с вами научились выпускать Wildcard SSL сертификат на центре сертификации Windows. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
Спасибо
Здравствуйте. Никак не могу разобраться с сертификатами. Понять их логику.
Настраивал сеть по Вашему образцу: *.root.domain.ru (domain.ru реально работающий сайт).
В локальной сети есть терминальный сервер rd.root.domain.ru, сам домен с настроенным AD — dc.root.domain.ru. Шлюз удаленных столов пока не делал.
Шлюз на Kerio. Удаленщики попадают в сеть через kerio vpn client.
У хостера на наш домен(и поддомены) можно выпускать бесплатный SSL либо от Let’s Encrypt либо WildCart.
То нужно Корневой CA создавать, который будет без сети. Затем подчиненный CA. А есть еще самоподписанные сертификаты.
Хочется просто пока на сервер терминалов выпустить сертификат. Можете высказать свои мысли?
Если хостер выпустит сертификат Lets’En crypt, то корневой и промежуточный будут автоматом в доверенных, они публичные
Да, хостер автоматом их перевыпускает по истечении срока. Причем все это бесплатно делает.
И так. Создал поддомен root. Заказал выпуск сертификата Lets’En crypt на него, при этом на domain.ru будет удален и установлен новый.
Далее создал поддомен rd и также заказа сертификат на него. Оба поддомена направил на директорию где лежит domain.ru. Но можно было и никуда не направлять. Что правильнее кстати?
На rd.root.domain.ru(сервер терминалов обычный внутри сети небольшой) народ ходит внутри локалки, из дома по vpn, еще другие ходят через проброс порта(сначала идут на внешний ip шлюза, затем шлюз перекидывает их на ip этого самого сервера терминалов, по имени подглючивает проброс).
Почему тогда it специалисты не используют данную схему с публичными сертификатами? Зачем все эти Автономные и не автономные CA? Зачем создают дмоен domain.local? Ваша эта статья кстати к автономному CA относится? И wildcard это тот самый wildcart который у хостера можно заказать или просто воспользовались аббревиатурой ? Надеюсь поняли озабоченность новичка в этом вопросе, точнее то, что тема не до конца понятна и если есть возможность, напишите про сертификаты отдельную статью. Какие есть варианты и + и — каждого из них и способы реализации. Спасибо.