Добрый день уважаемые читатели и гости блога, сегодня мы с вами продолжим изучать, веб сервисы на базе Windows, а именно, посмотрим, как производится настройка SSL на IIS для одного или нескольких сайтов, как с одним Ip адресом, так и с несколькими. Для выполнения этой, поставленной задачи у вас должен быть установлен веб сервер iis, на Windows Server начиная от 2008 R2 и выше, на текущий момент самый последний, это Windows Server 2016.
Добрый день! Уважаемые читатели и гости одного из крупнейших 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, в системах внутреннего документооборота.
Всем привет сегодняшней темой будет генерация запроса на сертификат на IIS 8, к вашему локальному центру сертификации CA. Генерация необходима для получения сертификата шифрования для сервера, так сказать безопасность превыше всего, да и трафик должен быть защищен, особенно в сфере последних рекомендаций со стороны поисковых систем Google и Яндекс.
Естественно у вас должен быть установлен центр сертификации и дана возможность подавать запрос на шаблон Webserver или основанный на него. Открываем оснастку на сервере диспетчер iis 8. Выбираем корень и видим пункт Сертификаты сервера, именно тут мы с вами будет делать CSR запрос.
Далее вам необходимо справа в пункте действия нажать создать запрос сертификата
Начнется генерация запроса на сертификат, вам необходимо заполнить определенные поля
- Полное имя — пишите что хотите
- Организация — название фирмы
- Подразделение — отдел или служба
- Город
- Область
- Страна — RU
Выбираете поставщика служб шифрования, я выбрал RSA , и длину ключа я в тестовой среде выбрал 2048, больше 4096 не ставьте, может получиться так что не все приложения с ним корректно работают.
Указываете имя файла сохранения и куда его сохраните
И так наша генерация запроса на сертификат завершена, будут сохранена в текстовый файл
В итоге вы получите файл с таким содержанием
Затем идете на ваш центр сертификации и создаете папку в которую копируете ваш файл txt с запросом, зажимаете shift и щелкаете по это папке правым кликом, выбираете открыть командную строку. В командной строке набираете команду
certreq -submit -attrib «CertificateTemplate: имя шаблона» cert.txt
Выскочит маленькое окно где нужно выбрать необходимый CA.
В итоге вы получите файл сертификат. Копируете его на ваш сервер с IIS 8. Нажимаете Запрос установки сертификата. Указываете путь до него понятное имя
А так же тип размещения веб-службы. Жмем ок.
Далее ваш сертификат появится в списке сертификатов сервера. Уверен, что вы теперь надежно защитите ваш IIS.
В этой статье я подробно расскажу о процессе установки и настройки Active Directory Certificate Services.
Служба сертификации Active Directory создает центр сертификации, предназначенный для выдачи сертификатов пользователям. Служба может быть настроена и работать через веб-интерфейс.
Первым делом нам нужно установить службу сертификации Active Directory.
Для этого нужно запустить диспетчер сервера.
Далее жмем «Добавить роли и компоненты». Кнопка далее.
Выбираем пункт установка ролей или компонентов, а затем выбираем наш сервер.
В следующем окне выбираем пункт службы сертификатов Active Directory.
В окне выбора компонентов жмем далее.
В окне служба ролей выбираем пункт центр сертификации.
Запускаем процесс установки.
После этого по аналогии устанавливаем веб-службу регистрации сертификатов.
Установка завершена. Перейдем к настройке.
Настройка службы сертификатов Active Directory
Заходим в настройки.
Выбираем службу центр сертификации.
Вариант установки – центр сертификации предприятия.
Тип центра сертификации – корневой. Это необходимо для того, что бы в дальнейшем мы могли самостоятельно выдавать и подписывать сертификаты.
В следующем окне нужно выбрать пункт создать новый закрытый ключ.
Затем необходимо указать параметры шифрования. Вы можете указать свои параметры, или параметры как у меня на рисунке ниже.
В следующем окне указывается имя центра шифрования.
Затем указывается срок действия центра сертификации. По умолчанию он равен 5 годам. Так и оставим.
После нажатия кнопки далее вам нужно будет указать физическое место на жестком диске для хранения базы данных.
Перейдем к настройке web-службы регистрации сертификатов.
Настройка web-службы регистрации сертификатов
В окне указать центр сертификации для веб-службы регистрации сертификатов выбираем пункт «Имя ЦС».
Тип проверки подлинности – имя пользователя и пароль.
Учетная запись службы CES – использовать встроенное удостоверение пула приложений.
В окне выбора сертификата проверки подлинности сервера выберите существующий сертификат, затем нажмите кнопку настроить.
Выберите тип проверки подлинности – имя и пароль пользователя.
Включите режим обновления на останове ключей. Этот режим позволяет автоматически обновлять сертификаты ключей для компьютеров, которые не подключены к внутренней сети.
Люди практикующие или знающие ssl, подскажите пожалуйста, я недопонимаю эту тему, т.к. практически никогда с ней не сталкивался.
Сам я 1С ник, и хочу организовать безопасный доступ к web серверу через SSL, т.к вариант vpn не прокатил, т.к. юзеры постоянно отваливаются, а автоматическое соединение с сервером vpn происходит постоянно через задницу, vpn не практичен, но я уверен, что есть решения, которые держат/восстанавливают постоянное vpn соединение.
В общем почитав кучу информации смешанной с рекламой SSL у меня возникла следующая модель, которую я попытался реализовать:
1. С помощью OPEN SSL, создается корневой сертификат
2. Далее, создается именной сертификат для каждого пользователя, он устанавливается у него на машине, если юзеру нужно перекрыть доступ, его сертификат аннулируется.
два раза с перерывами я мучался в итоге получилось, но браузер пишет, что сертификат не является подленным и без настроек в браузере работать с веб сервером не получиться.
Причина: конечно же, в том, что корневой сертификат создан мною и он не является доверенным.
Извиняюсь что много написал, это для того, может меня ткнут носом в корень и я на ложном пути?
Собственно вопрос: Подскажите пожалуйста тариф для SSL чтобы :
1. Установить корневой ssl на web server
2. Выписывать индивидуальные ssl для юзеров
Это возможно, может я грабли на велосипеде катаю? Как можно организовать индивидуальный защищенный доступ к вэб серверу не используя vpn или авторизацию системы? Спасибо за ответы.
Для того чтобы организовать защищенный доступ, нужно иметь только обычный серверный сертификат для веб сервера на доменное имя.
Его проще купить, они не дорогие.
Авторизация в 1С будет по пользователю и паролю 1С, но трафик будет уже шифрованный, поэтому соединение будет защищено.
Рабочие станции настраивать будет не нужно вовсе.
(1) Спасибо за ответ, но любой пользователь сможет подключаться к авторизации 1С, а этого не надо, доступ должен блокироваться на уровне web срвера. Поэтому я предлагаю рассмотреть дочерние (пользовательские) сертификаты
А на счет авторизации по сертификату пользователя, это история более длинная.
Во-первых их надо будет генерить самому, для этого нужен сертификат с возможностью выписки дочерних, это дороже (можно конечно самоподписанный, но не факт что получится с ним в 1С).
Во-вторых эти сертификаты нужно передать на комп пользователя, и указывать при запуске тонкого клиента. Понятно что эти файлы пользователи могут и будут копировать. )
(0) Не обязательно подключатся браузером.
Я бы сделал подключение клиентом 1С. Ему все равно какой сертификат, глобальный или локальный. На веб сервере бы указал авторизацию по сертификату. В 1С бы импортировал сертификаты клиентов.
И еще, да, чета я не уверен что авторизация в 1С произойдет по пользовательскому сертификату..
Собственно как оно сопоставится-то с пользователем 1С?
Сертификат только позволит дойти до веб сервера.
Поэтому авторизация 1С все равно будет паролем.
(6) Все правильно. Сертификат позволит пройти веб и дойти до 1С. Там своя авторизация.
(6)+
Я думаю, что это возможно только с доменным олицетворением, т.е. пользователей заносить в AD, сертификаты пользователей тоже в AD, да собственно она их выдавать должна тогда.
Есть там такое.
В 1С прописать авторизацию ОС. И молится чтобы IIS делал олицетворение. Вот тогда заработает автоматический вход в 1С.
в общем надо покупать SSL за 10$, лишним не будет и экспериментировать.
(5) Это халявный SSL, можно на сайт вешать?
(5)(12) помер он, не доверяют ему, c 01.01.18 прекращают выпуск
(0) поставь certbot, к простая команда, и забудь продлении, настрйоке и т.д. Будет вечный, валидный, сам прицепитсья, сам настроится
+(14) + он бесплатный
Как выпустить 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, его поля. Задаваемые поля:
- Страна (Country) — пишем RU и добавляем на право
- Подразделение (Organizational Unit) — например, пишем IT
- Область (State) — Я пишу Moscow
- Размещение (Location) — Я пишу Moscow
- Организация (Organization) — Я пишу Pyatilistnik Inc
Переходим на вкладку «Расширения (Extensions)», тут мы зададим под, что мы будем использовать ваш Wildcard SSL сертификат, так называемые OID (Оиды). Раскрываем пункт «Использование ключа», из левой панели переносим вот такие пункты:
- Цифровая подпись (Digital Signature)
- Шифрование ключей (Key encipherment)
Так же при необходимости можете открыть «Расширенное использование ключа», тут много дополнительных возможностей:
Переходим на вкладку «закрытый ключ (private key)». В разделе «Параметры ключа» выставите его размер, у меня это будет 4096 байт, обязательно поставьте галку «Сделать закрытый ключ экспортируемым (Make private key exportable)»
При необходимости вы можете задать тип ключа в вашем Wildcard SSL. Тут будет два варианта:
- Обмен (Exchange) — относится к обмену ключами шифрования. С помощью S/MIME отправитель шифрует электронную почту с помощью открытого ключа получателя, а получатель расшифровывает сообщение своим закрытым ключом. Exchange = шифровать ключи сессии
- Подпись (Signature) — означает подтверждение личности отправителя. Само сообщение не зашифровано, однако, если сообщение подделано во время передачи, оно делает недействительной подпись. Для наших целей нам необходимо подтвердить свою личность на удаленном сервере, поэтому мы будем использовать . Signature = создать цифровую подпись
При желании вы потом с помощью утилиты certutil можете поменять тип у сертификата
Достаточно будет оставить значение по умолчанию (Подпись), второй режим часто используют в VPN построениях. Нажимаем «Ok»
В окне сведения о сертификате нажимаем далее.
Вас попросят указать имя файла и где его сохранить, оставляем формат файла в виде «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».
Далее в оснастке сертификаты, открываем раздел «Личное — Сертификаты», щелкаем по ним правым кликом и выбираем пункт «Все задачи — импорт»
В мастере импорта просто нажимаем далее
Через кнопку «Обзор» укажите ваш сертификат в формате cer.
Помещаем его в личное
В итоге вы увидите, что импорт успешно выполнен.
Далее у вас появится ваш сертификат, щелкаем по нему правым кликом и экспортируем его. Ставим, что будем экспортировать, для этого выставите галку «да, экспортировать закрытый ключ». На выходе вы получите pfx архив со всеми ключами, который потом можно использовать.
очень легко без установки вы можете просматривать состав вашего pfx архива в keytool или KeyStore Explore
На этом у меня все, мы с вами научились выпускать Wildcard SSL сертификат на центре сертификации Windows. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
Установка и настройка удостоверяющего центра
Запустите консоль управления Microsoft (пуск, выполнить, mmc).
Далее нажмите файл, а затем добавить или удалить оснастку.
В левой части нужно выбрать пункт «Сертификаты» и нажать кнопку добавить.
В появившемся окне выбрать пункт учетной записи компьютера.
В следующем окне ничего не меняем и нажимаем кнопку готово. Оснастка добавлена.
В левой части окна можно увидеть папки, в которых хранятся сертификаты (11 штук). Они сортированы по типам сертификатов. Если нажать на папку «Личное» то можно посмотреть сертификаты в этой папке.
Запросим новый ключ, для этого нужно нажать на сертификате и выбрать меню «все задачи», а затем «запросить сертификат с новым ключом».
Появится окно перед началом работы. Жмем далее.
Видим окно запрос сертификатов и нажимаем «заявка».
Запускается процесс установки сертификата. После успешной установки появиться следующая надпись «Состояние: Успешно».
Теперь нам нужно связать сертификат с веб-сервером. Для этого нужно запустить диспетчер служб IIS.
В левой части окна нажать сайты, default web site, изменить привязки.
В появившемся окне нажмите добавить и введите данные как на изображении ниже.
Сохраните изменения и закройте окно.
Управление шаблонами сертификата
Работа с шаблонами сертификата требует установки оснастки «Шаблоны сертификатов». Откроем нашу консоль, которую мы создавали ранее и добавим оснастку «Шаблоны сертификатов».
Откроем шаблоны в главном окне консоли. Создадим новый шаблон.
Сначала нужно выбрать любой шаблон сертификата и нажать скопировать его.
Настроим шаблон. Выберите совместимость шаблона сертификата.
Задайте общие свойства шаблона.
В поле «отображаемое имя» , в строке «имя шаблона» будет тоже самое только без пробелов.
Параметры достоверности по умолчанию и периода обновления для сертификатов, выдаваемых службами сертификатов Active Directory (AD CS), предназначены удовлетворить большинство требований безопасности. Однако для сертификатов, используемых определенными группами пользователей, может потребоваться указать другие параметры достоверности и обновления, такие как более короткие срок действия или периоды обновления.
За это два параметра отвечают для поля «период действия» и «период обновления».
Параметр «опубликовать сертификат в Active Directory» определяет, будут ли сведения о шаблоне сертификата доступными по всему предприятию.
Параметр «не использовать автоматическую перезаявку, если такой сертификат уже существует в Active Directory». С помощью этого параметра автоматическая подача заявки на сертификат не подаст запрос повторной заявки, если в доменных службах Active Directory (AD DS) существует дубликат сертификата. Это дает возможность обновлять сертификаты, но предотвращает выдачу нескольких дубликатов сертификатов.
Обработка запроса. Цель имеет 4 возможных параметра:
- Вход с подписью и смарт-картой. Разрешает первоначальный вход в систему с помощью смарт-карты и цифровую подпись данных. Нельзя использовать для шифрования данных.
- Подпись. Содержит шифровальные ключи только для подписи данных.
- Подпись и шифрование. Охватывает все основные применения шифровального ключа сертификата, включая шифрование данных, дешифрование данных, первоначальный вход в систему и цифровую подпись данных.
- Шифрование. Содержит шифровальные ключи для шифрования и дешифрования.
Параметр «включить симметричные алгоритмы, разрешенные субъектом» позволяет администратору выбрать алгоритм стандарта AES для шифрования закрытых ключей, когда они передаются в ЦС для архивации ключа.
Если установлен этот параметр, клиент будет использовать симметричное шифрование AES-256 (наряду с сертификатом обмена ЦС для асимметричного шифрования), чтобы отправить закрытый ключ в ЦС для архивации.
Параметр «авторизация дополнительных учетных записей служб для доступа к закрытому ключу» позволяет задать настраиваемый список управления доступом (ACL) к закрытым ключам сертификатов компьютеров на основе любых шаблонов сертификатов компьютера версии 3 за исключением корневого ЦС, подчиненного ЦС и перекрестных шаблонов ЦС.
Настраиваемый список управления доступом необходим в случае, если учетная запись службы, которой требуется доступ к закрытому ключу, не включена в разрешения по умолчанию.
Вкладка шифрование. Определяется максимальный размер ключа. Я оставлю его без изменений.
Безопасность можно настроить по вашему усмотрению.
Шаблон сертификата готов.
На этом статья подходит к концу. Мы установили и настроили Active Directory Certificate Services.
Установка SSL в PFX
Далее в поле «Действия» вы нажимаете импортировать.
Через обзор, указываете ваш pfx архив.
Указываете пароль, в строке «Выбрать хранилище сертификатов» укажите либо «Личный» подойдет для обычного размещение, а вот пункт «Размещение веб-служб» нужен для SNI технологии.
По сути, это и есть сложная установка SSL в iis, как вам такое.
Указываем для сайта:
Настройка нескольких HTTPS сайтов на разных ip
Предположим, что у вас есть два сайта:
- api.pyatilistnik2010.ru
- new.pyatilistnik2010.ru
Вам необходимо, чтобы каждый из них имел свой ip привязанный к DNS имени и так же отдельный сертификат, тут все просто. Вы так же поднимаете отдельные сайты, с той лишь разницей, что в поле ip адрес, указываете нужный и в поле имя узла, адрес вашего ресурса, ну и собственно нужный сертификат.
Сохраняем и проверяем, должно все работать, на любой из версий сервера IIS от 7,5 до 9.
Настройка нескольких HTTPS сайтов на одном ip
Теперь представим себе ситуацию, что у вас один внешний ip адрес, как быть, пробуем повесить все на него. В итоге один из сайтов у вас получит 404 ошибку, кто не в курсе, что это такое, то вам сюда.
Вся проблема в том, что в IIS по такому сценарию, в веб интерфейсе может работать, только сертификат на домен, формата wildcard *.pyatilistnik.org. Звездочка подразумевает, что вы можете использовать SSL на любой домен третьего уровня. Но не смейте сдаваться, есть два выхода:
- Использование технологии SNI (Server Name Indication) в IIS, подходит для всего старше версии 7.5, так, что Windows Server 2008 R2 и ниже в пролете.
- Использовать скрипт от Microsoft.
Вот вам пример такого сертификата.
Если у вас wildcard, то все просто, либо через диспетчер IIS все меняете, либо через конфигурационный файл.
Откройте его, здесь хранятся настройки IIS. И можно задать биндинг на разные доменные имена:
Теперь метод, если у вас нет wildcard и только один внешний ip на сервере, подходит для IIS 7.5 и выше. Первое, что нам необходимо сделать, это узнать ID вашего сайта, делается это просто, либо через консоль диспетчер IIS
Либо все в том же файле applicationHost.config
Далее переходим в папку:
Если у вас, например, на IIS 8 и старше в данной папке нет этого файла, то вам необходимо доставить IIS Management Scripts and tools (IIS скрипты и инструменты управления ).
В Windows Server 2012 R2 файл adsutil.vbs set у меня появился в папке
cscript.exe adsutil.vbs set /w3svc/ИДСайта/SecureBindings «:443:ИмяСайта»
в моем случае это выглядит вот так
cscript.exe adsutil.vbs set /w3svc/2/SecureBindings «:443:api.ваш сайт.ru»
Теперь если при выполнении скрипта вы получаете ошибку компиляции и ваш файл adsutil.vbs это просто кракозябры, то делаем следующее.
Заходим в добавление ролей и выбираем компонент
Настройка https сайта на IIS
И так про создание сайта iis на windows server 2012, я вам уже рассказывал, подразумевается, что он у вас есть. Далее, когда вы прописали все DNS записи, вы генерировали запрос на выпуск сертификата и уже потом получали от центра сертификации ваш сертификат, но его еще приходилось затачивать под iis, так как ему нужен формат pfx.
Еще немного теории и ограничения
- Купить wildcard сертификат, чтобы была возможность вешать SSL на любой сайт IIS
- Купить дополнительный ip для каждого сайта
- Воспользоваться скриптом и применить привязку нужного SSL к нужному сайту, на одном Ip адресе
- Воспользоваться технологией SNI (Server Name Indication)