Глава 5. Информационные службы интернета
Содержание
- Глава 5. Информационные службы интернета
- Введение
- Установка роли Веб сервера через PowerShell
- Запуск вашего первого веб- сайта
- Изменение порта, на котором работает ваш веб- сайт
- Добавление шифрования в ваш веб- сайт
- Применение Запроса подписанного сертификата для получения вашего сертификата SSL
- Перемещение сертификата SSL с одного сервера на другой
- Автоматическая компоновка ваших обновлённых сертификатов
- Размещение множества вебсайтов на вашем сервере IIS
- Использование заголовков хоста для управления множеством вебсайтов с единым IP адресом
Вебсайты и веб службы используются для всего в эти дни. С эволюцией Облачных технологий мы осуществляем доступ всё больше и больше через веб браузеры, чем это было ранее. Облака могут означать очень различные вещи для разных людей, однако то, что я наблюдаю наиболее распространённым на Предприятиях (Enterprise) это создание частных облаков. Обычно это означает коллекцию веб серверов, которые применяются для обслуживания веб приложений персоналу компании для работы из них. Иногда частные облака расположены на площадке в центре обработки данных; иногда локально; а иногда это комбинация локального центра обработки данных и реального Облачного решения поставщика веб служб, такого как Azur. Всякий раз, когда вы определяете для себя некое частное облако, одна переменная остаётся той же самой. Ваше облако содержит веб сервера, которые должны управляться и администрироваться.
Для любого магазина собираемого вокруг Microsoft, ваши веб- сервера должны быть рабочими Windows Server с установленной ролью IIS (Internet Information Services, Информационных служб Интернета). IIS является платформой вебсайта в Windows Server 2016 и с её помощью мы можем выполнять любые виды нужных нам вебсайтов и веб служб. Чаяния данной коллекции рецептов состоят в том, чтобы предоставить вам солидную основу для понимания того способа, которым вебсайты работают внутри IIS. Даже если вы не установите нормально новые веб службы, вы сможете очень хорошо обнаружить их проблемы. Ознакомление с их консолью и опциями, а также всего лишь понимание частей и фрагментов, могут оказаться чрезвычайно полезно всякому, кто занимается администрированием серверов в какой- либо среде Windows. В этой главе мы обсудим следующие рецепты:
-
Установка роли Web Server при помощи PowerShell
-
Запуск вашего первого вебсайта
-
Изменение номера порта, с которым работает ваш вебсайт
-
Добавление шифрования для вашего вебсайта
-
Применение Запроса подписи сертификата для получения вашего сертификата SSL
-
Перемещение некоторого сертификата SSL с одного сервера на другой
-
Автоматическое повторное построение и обновление сертификатов
-
Размещение множества вебсайтов на вашем сервере IIS
-
Использование заголовков хоста для управления множеством вебсайтов с одним IP адресом
Если вы читаете эту книгу рецептов непрерывно, от начала до конца, вы, скорее всего, заметили, что мы неоднократно используем свой новый веб сервер при тестировании или совершенствовании своих задач в нашей инфраструктуре. Таким образом, наш веб сервер имеет целую связку вещей, которые накапливаются как результат систематически выполняемых нами сетевых задач, однако до сих пор мы пока не выполняли пока никакого реального веб обслуживания!
Для большинства задач в этой главе мы предполагаем, что роль для IIS уже установлена в вашем веб сервере. Эта роль конкретно называется Web Server (IIS) и существует множество дополнительных свойств, которые мы можем добавлять к IIS. Для всех наших рецептов нам нужны только добавления по умолчанию, которые выбираются автоматически при установке этой роли. Установка этой роли является единственной нужной вещью из коробки Windows Server 2016 чтобы обслуживать вебстраницы для пользователей, помимо небольших познаний в том как заставить сайт делать то, что вы от него ожидаете. Чтобы получить данную роль установленной надлежащим образом, не забудьте остановиться на рецепте Установка роли Веб сервера через PowerShell чтобы разместить этот компонент на его месте. Давайте ознакомимся с некоторыми общими задачами в IIS.
Если вы ещё пока не начали применять PowerShell для выполнения ряда своих постоянных задач Windows Server, сделайте это сейчас! PowerShell может применяться в Windows Server 2016 для выполнения любых задач настройки внутри этой операционной системы. Я громадный фанат применения своей клавиатуры вместо своей мышки при любых обстоятельствах, а также сохранения сценариев, которые можно применять снова и снова для сбережения времени в будущем.
В данном рецепте мы собираемся изучить cmdlet Install-WindowsFeature
,
который может применяться для добавления роли или ролей в ваш Server 2016. Поскольку в данной главе мы обсуждаем
IIS, давайте возьмём наш только что созданный веб сервер и воспользуемся PowerShell для помещения на нём
вашей роли Web Server (IIS).
У вас имеется новый веб сервер Windows Server 2016 в нашей среде с именем
WEB2
. Давайте воспользуемся
на этой машине PowerShell чтобы установить роль IIS.
Чтобы добавить роль Web Server (IIS) на WEB2
через PowerShell, выполните следующие шаги:
-
Зарегистрируйтесь на
WEB2
и откройте приглашение PowerShell; убедитесь, что вы выполняете его от имени администратора. -
Всё что нам нужно сделать, так это исполнить соответствующий cmdlet определяющий необходимое имя роли, однако, конкретное имя роли ускользает от меня. Хорошо, я его не знаю, однако ото могла бы быть хорошая возможность исследовать другую команду, которая поможет мне просмотреть перечень доступных ролей, которые можно установить. Наберите следующую команду, чтобы просмотреть перечень ролей:
Get-WindowsFeature
-
Тпру! Существует очень большой список всех ролей и свойств, которые могут быть установлены на данном сервере. Пролистывая его, я могу обнаружить в этом перечне
Web Server (IIS)
, и это выглядит похожим на роль с именемWeb-Server
. Я собираюсь сохранить это имя в памяти и, поскольку у нас существует возможность устанавливать множество элементов за один раз, я собираюсь отметитьWeb-Common-Http
чтобы установить общие свойства HTTP при установке такой роли.
-
Теперь нам необходимо построить команду PwerShell для установки этих двух элементов:
Install-WindowsFeature Web-Server,Web-Common-Http,Web-Mgmt-Console -Restart
-
Установка достигла цели! Просто дважды проверьте её на соответствие целям нашего рецепта, если мы перемещаемся по GUI для просмотра всех установленных ролей и свойств, мы можем видеть, что все элементы, которые мы настроили через PowerShell полностью установлены.
Мы можем применять в PowerShell cmdlet Install-WindowsFeature
для быстрого добавления ролей и свойств в свой сервер. Только это само по себе может сохранить нам много
времени в сравнении с обходом этих параметров в графическом мастере. Например, если у нас имеется группа
новых серверов, в каждом из которых необходимо выполнить одну и ту же задачу и по этой причине необходимо
выполнять установку одного и того же набора ролей, вы можете выстроить одну отдельную команду для установки
таких ролей и исполнить ей на каждом сервере. Совсем нет необходимости запускать Диспетчер сервера.
Вот некоторые ссылки по дополнительной документации TechNet по добавлению ролей в серверы и, в частности,
для cmdlet Install-WindowsFeature
. Не забудьте ознакомиться со всеми
доступными опциями. Если вы начнёте применять эту команду, я сомневаюсь, что вы вернётесь к
Диспетчеру сервера!
Это выглядит как достаточно логичный первый шаг; давайте запустим какой- нибудь вебсайт! На самом деле, у вас уже имеется один, однако он достаточно бесполезен в данный момент. Раз мы завершили установку своей роли IIS, стандартный вебсайт был запущен автоматически, следовательно вы могли убедиться, что всё работает как необходимо. Теперь мы хотим заменить такой вебсайт по умолчанию на один из своих собственных с тем, чтобы мы могли реально применять такой новый сервер.
Мы будем выполнять всю работу в новом веб сервере Server 2016. Он оказался подключённым в домен, однако это не требуется. Вы имели бы возможность запустить некий вебсайт обособленным, вполне достаточно включённого в рабочую группу сервера.
Для запуска вашего первого вебсайта в данном новом вебсервере выполните следующие шаги:
-
Откройте Диспетчер сервера и раскройте меню Tools (Средствва). Затем кликните по Internet Information Services (IIS) Manager.
-
Кликните правой кнопкой по Default Web Site и переместитесь в Manage Website | Stop. Это остановит исполнение данного автоматически созданного вебсайта и предоставит дорогу новому сайту, который вы готовы создать.
-
Перед тем, как вы создадите новый вебсайт, вам необходимо создать некий файл HTML вебстраницы, который будет работать, когда пользователь просматривает такой новый сайт. Давайте оставим Диспетчер IIS открытым на минутку и перейдём в File Explorer. Переместитесь в каталог
C:\inetpub
. Это разновидность вашей домашней папки, которую создаёт IIS и она может быть хорошей отправной точкой для построения вашего вебсайта. У вас нет нужды создавать свою новую страницу внутри этой папки, вы определённо можете настроить её в другом местоположении, или даже ещё и на другом устройстве, к тому же. -
Создайте новую папку с названием
NewWebsite
, или каким- либо ещё пришедшим вам в голову. -
Внутри этой новой папки мы собираемся создать новый файл с именем
Default.htm
. Чтобы сделать это, я обычно кликаю правой кнопкой и выбираю создание нового текстового файла и именую этот файл какDefault.txt
. Затем я регулирую Folder Options с тем, чтобы я мог просматривать и изменять расширения файла, либо я просто открываю окно Command Prompt и переименовываю этот файл таким образом. Как бы вы не сделали это, убедитесь, что вашDefault.txt
изменил своё имя наDefault.htm
в окончательном названии файла.
Совет {Прим. пер.: при создании вебсайтов через текстовый редактор работа сосредоточена в основном на обработке большого количества файлов (и тут вам средства Windows с их заморочками с удобным для вас именованием файлов вам работают против вас). И это помимо собственно работы в текстовом редакторе, к которому основные требований - возможность работы с различными кодировками (в особенности, с UTF-8, а также win-1251 и cp-866), желательность подсветки синтаксиса .html, .js, .css, .php, .perl, .py и т.п, а также максимально возможное невмешательство в отображение набираемых данных. Здесь моим личным предпочтением является Notepad++. Хотя он и обладает собственными возможностям работы с большим количеством файлов и, в том числе, предоставляет инструменты визуального сравнения и определения различий в больших файлах, собственно для работы с большим количеством файлов, в особенности через SSH с удалёнными сайтами в тестовом режиме, я предпочитаю и настоятельно рекомендую File Commander.} .
-
Теперь отредактируйте свой новый файл
Default.htm
в Notepad или другом инструменте редакции текстов {Прим. пер.: см. Notepad++ + File Commander!} и введите некий текст. К счастью, современные веб браузеры будут надлежащим образом отображать страницы основанные на обычном тексте, поэтому нам не обязательно вводить допустимый код HTML. Если вы знаете как программировать HTML, будет даже лучше, хотя я сомневаюсь, что вы будете читать этот особенный рецепт. Или, может быть у вас уже имеется предварительно настроенный файл вебстраницы или набор файлов из установки программного обеспечения {Прим. пер.: или же просто сохраните понравившихся вам html из Интернета!}; вы можете поместить это в данную папку, я же собираюсь просто ввести некий текст в такой файл, который скажетCongratulations, you are viewing our new website!
{Прим. пер.: перевод данного текста на русский язык может привести к дополнительной необходимости изучения свойств перекодировок вашего браузера!} -
Вернитесь назад в IIS и дайте вашему сайту возможность прокурутки. Кликните правой кнопкой по папке
Sites
и выберите Add Website…. -
Введите имя сайта, что является только описательным названием для ваших собственных нужд чтобы определять этот сайт в IIS.
-
В качестве Physical path выберите новое местоположение вебсайта, которое в нашем случае следующее:
C:\inetpub\NewWebsite
. -
Если вы обрабатываете на этом веб серевре множество IP адресов и хотите выделить этот новый сайт для работы только с одним определённым IP адресом, вы можете выбрать его в вашем поле IP address. В противном случае, если вы работаете с одним IP, или если вы хотите чтобы наш новый сайт работал на всех IP настроенных в этой системе, оставьте эту настройку со значением All Unassigned.
-
Кликните OK.
-
С другого компьютера в вашей сети откройте Internet Explorer и наберите в строку URL
http://<webserver>
. Для конкретно нашего примера мы перейдём наhttp://web2
.
Запуск нового вебсайта, вероятно, самая простая задача, которая может быть выполнена в IIS, однако она рисует портрет всего ядра функциональности данной роли. Цель работы IIS в первую очередь состоит в публикации вебсайтов. Важно понимать местоположение данной задачи и места, к которым вы можете получать доступ внутри вашей файловой системы {Прим. пер.: а также имеющихся у вас баз данных, хранилищ объектов и блочных устройств!} для изменения или создания ваших собственных веб сайтов. Не всё можно сделать в рамках вашего окна управления IIS.
Обычно, всякий раз когда вы осуществляете доступ к некоторому вебсайту, он работает по порту 80 или 443. Любой нормальный HTTP запрос проходит через порт 80, а зашифрованный HTTPS применяет порт 443. Внутри IIS очень просто изменить порт, который отслеживает вебсайт, если вам нужно это сделать. Вероятно, наиболее распространённая причина ввести изменение на некотором вебсайте состоит в сохранении его скрытым. Может быть, у вас имеется административный сайт и некоторого вида и желание обладать уверенностью, что никто не будет спотыкаться об него, или может быть, что ваш веб сервер ограничен в IP адресах и вам необходимо включить другую вебстраницу, однако все ваши IP уже исполняют сайты. Для такого нового сайта вы можете воспользоваться другим портом, а затем, возможно, исполнять два (или более) сайтов использующими один и тот же IP адрес, по одному сайту на каждый порт.
Какой бы ни была причина для пожелания изменить определённый порт, на котором работает вебсайт, давайте пройдём шаги для выполнения этой задачи с тем, чтобы это был ещё один из инструментов, добавляемый на ваш рабочий ремень.
У нас имеется работающий сервер Windows Server 2016, который имеет установленную роль IIS. Также
уже существует вебсайт выполняющийся на этом сервере. В настоящее время используется по умолчанию порт
80
, однако мы хотим изменить этот порт на
81
и проверить доступ к нему с компьютера клиента.
Вот шаги, которые необходимы для изменения прослушиваемого порта вебсайта:
-
В меню Tools (Средства) Диспетчера сервера откройте Internet Information Services (IIS) Manager.
-
В панели окна с левой стороны раскройте имя вашего вебс сервера и кликните на папку Sites.
-
Кликните правой кнопкой по своему вебсайту и выберите Bindings….
-
Выберите связывание (binding) http, которое в настоящее время отображает порт
80
и кликните на кнопку Edit…. -
Измените поле Port на значение
81
. Это, конечно, только для нашего примера. Вы можете ввести любой разрешённый номер порта в этом поле, который не используется кем- либо в данном сервере. -
Кликните OK, а затем Close.
-
На ввашем сайте немедленно изменится порт. Сайт больше не отслеживает порт
80
. Давайте проверим это, перейдя на компьютер клиента в нашей сети и открыв Internet Explorer. -
Попытайтесь просмотреть старый адрес вебсайта,
http://web2
.
-
Упс! Я предполагаю, что он не собирается больше работать. Вместо этого нам необходимо включать с настоящего времени наш конкретный порт в URL. Давайте попробуем
http://web2:81
.
Мы можем легко отрегулировать какой именно порт применяется для доступа к вебсайту внутри IIS сделав
одно простое уточнение. После изменения номера порта в нашем связывании вебсайта, этот сайт немедленно
переключится на прослушивание нового установленного порта и больше не проявляет активности по своему старому
порту. Вместо изменения порта вы можете также добавить дополнительное связывание в том же самом окне чтобы
заставить ваш вебсайт отвечать от множества портов в одно и то же время. Например, если вы хотите, чтобы ваш
вебсайт работал одновременно и с HTTP для обычного доступа и с HTTPS для шифрованного доступа к страницам
с чувствительной информацией, вы можете создать связывание для обоих портов, и для порта
80
, и для порта
443
.
Необходимо сделать одно важное замечание при изменении порта вашего вебсайта; выполнение этого означает, что ваши веб- ссылки для доступа к этому сайту будут теперь включать в себя этот особый номер порта в конце. Кроме того, если у вас в сетевой среде или на самом веб сервере работают межсетевые экраны (брандмауэры, firewalls), скорее всего вам будет необходимо отрегулировать настройки {Прим. пер.: добавить правила} в этих межсетевых экранах чтобы разрешить безопасное прохождение пакетов для этого нового порта.
Применение вебсайтов для передачи данных во всемирном Интернете является основной технологией, как мы это знаем сегодня. Установка даже самого простейшего нового инструмента или системы вероятно потребует от вас загрузки программного обеспечения или обновления, или регистрации вашей информации в вебсайте. Поскольку вы являетесь специалистом в ИТ, я надеюсь что вы знакомы с сопоставлением HTTP и HTTPS вебсайтов и важности различия между ними. Однако теперь, когда у нас имеется работающий вебсайт, как мы можем включить HTTPS в нём с тем, чтобы он мог защитить эти данные, которые перемещаются взад и вперёд между нашим веб сервером и соответствующими компьютерами клиентов?
Обычно задачей веб разработчика является сообщать вебсайту когда делать вызовы для HTTPS, поэтому вам не стоит сильно беспокоиться о реальном содержимом вебсайта. Однако, будучи администратором сервера, вам необходимо удостовериться, что раз уж HTTPS запрашивается на вашем вебсайте, ваш веб сервер способен обрабатывать такой обмен надлежащим образом.
У нас работает веб сервер Server 2016 на котором мы будем выполнять данную задачу. Существует также простой вебсайт, в настоящее время работающий внутри IIS на этом сервере. Часть нашего рецепта состоит в выборе сертификата SSL, который вы хотите видеть работающим на нашем вебсайте, поэтому данный рецепт предполагает, что такой сертификат уже установлен на вашем сервере. Если вам нужна помощь с получением самого такого сертификата, ознакомьтесь, пожалуйста, с рецептом Применение Запроса подписанного сертификата для получения вашего сертификата SSL.
Для настройки вашего вебсайта под HTTPS обмен выполните следующие шаги:
-
Запустите Internet Information Services (IIS) Manager из меню Tools (Средства) внутри Диспетчера сервера.
-
В панели окна слева расширьте имя своего веб сервера и кликните по папке Sites.
-
Кликните правой кнопкой по вашему вебсайту и выберите Bindings....
Так как это новый вебсайт, вы можете увидеть, что присутствует только одно перечисленное связывание. Это связывание для порта
80
, что делает вебсайт доступным только для HTTP. Если вы в настоящий момент пытаетесь осуществить доступ к сайту через HTTPS, он должен завершиться неудачей. Портом для HTTPS является443
, и, таким образом, нам нужно добавить новое связывание, которое использует порт443
. Ошибка,которую я часто наблюдаю у молодых администраторов, состоит в изменении его с80
на443
. Это может привести к тому, что вебсайт прослушивает толко порт443
, или иначе, принимает только запросы через HTTPS. Это может быть желательным при некоторых обстоятельствах, но далеко не во всех. Обычно вы хотите, чтобы ваш вебсайт отвечал по обоим видам запросов, и по HTTP, и по HHTPS. -
Пройдите вперёд и кликните кнопку Add….
-
Измените поле Type на https. Вы заметите, что ваше поле Port автоматически изменит значение на
443
. -
Если вам нужно, чтобы это новое связывание работало только на определённом IP адресе, выбеерите это сейчас. В противном случае оставьте настройку установленной в All Unassigned, чтобы вызвать активность такого нового перехватчика по всем IP адресам, которые присутствуют на нашем сервере.
-
Выберите тот SSL certificate, который вы хотите применять для запросов аутентификации к этому вебсайту. Именно обмен HTTPS является шифрованным и гарантирующим безопасность от чужих глаз, так как туннель удостоверяется неким сертификатом SSL, который является специфичным для имени вашего вебсайта. Вы должны иметь установленный на этом сервере SSL сертификат чтобы вы могли выбрать его из имеющегося здесь перечня для создания связывания HTTPS.
-
Кликните OK, а затем кликните Close, ваше HTTPS связывание теперь активно на этом вебсайте.
В этом рецепте мы применяем консоль управления IIS для добавления второго связывания с нашим новым вебсвйтом. Это новое связывание предназначено для приёма обмена HTTPS. Мы пытаемся выполнять части этого вебсайта в виде HTTP, а некоторые наиболее чувствительные страницы как HTTPS. По этой причине мы создаём второе связывание, разрешая оба обмена, и HTTP, и HTTPS успешно проходить с этого сайта. На протяжении курса данного рецепта нам нужно выбрать соответствующий сертификат SSL, который этот вебсайт собирается применять для удостоверения своего происходящего обмена HTTPS. На нашем сервере уже был установлен некий SSL сертификат для нашего вебсайта; мы просто выбрали его из имеющегося списка.
При публикации некоторого вебсайта во всемирном Интернете, обычно на практике применяется сертификат SSL на том вебсайте, который вы получаете из общедоступного Центра Сертификации (CA, Certification Authority). Существуют большие субъекты выпуска сертификатов, такие как Entrust, Verisign, GoDaddy и тому подобные. Также допускается применение вашей собственной внутренней инфраструктуры PKI для выпуска сертификатов SSL, которые будут выставляться во внешний мир, однако могут возникнуть трудности с настройкой такой инфраструктуры сертификации должным и безопасным образом. На сколько бы дёшевы не были сертификаты SSL, это будет стоящим вложением - наличие безопасности в знании того, что применяемый на вашем вебсайте сертификат является единственным и исключительным сертификатом такого рода, и что никто кроме вас не имеет возможности получить в свои руки копию вашего сертификата и подменить ваш вебсайт. Современные браузеры также имеют предварительно построенный список общедоступных CA, которым они доверяют; они могут применять сертификаты из одного из этих общедоступных субъектов с ещё большей выгодой, так как ваши браузеры будут автоматически доверять этим сертификатам без какой- либо дополнительной работы с клиентской стороны.
Достаточно просто зарегистрироваться на одном из этих вебсайтов CA и приобрести некий новый сертификат, однако после этого начинается хитрая часть. Совершив покупку, вам необходимо пройти некоторые шаги и ввести информацию о своём сертификате. Достаточно просто; запрашивается некая информация о компании и конкретное название, которое планирует применяться для вашего сайта, естественно. Затем у вас просят CSR (Certificate Signing Request, Запрос на подпись сертификата - {Прим. пер.: не подписанный сертификат, передаваемый в центр сертификации, где он удостоверяется секретным ключом, после чего становится действующим сертификатом}) и вам выдаётся либо очень большой пустой блок для вставки в него, либо функция выгрузки, при помощи которой вы можете выгрузить свой CSR непосредственно им. Это именно то место, в котором я наблюдаю у многих молождых администраторов стремление перейти к их следующему шагу.
CSR является файлом, который должен быть создан на вашем веб сервере. Он содержит информацию, которую CA использует при создании вашего серификата. Когда они делают это, это связывает сам сертификат с информацией в вашем CSR, гарантируя что ваш сертификат построен специально для вашего веб сервера. Здесь мы, однако, собираемся генерировать CSR вместе, для того, чтобы вы были готовы обрабатывать этот экран, когда вы будете его проходить.
Мы собираемся применять IIS, который работает на нашем веб сервере Server 2016 для генерации CSR. Этот сервер является единственной частью инфраструктуры, которая нам нужна для выполнения данной задачи.
Чтобы запросить новый сертификат из общедоступного CA, вам необходимо раскрутить CSR на вашем веб сервере. Вот шаги, которые следует сделать:
-
Откройте Internet Information Services (IIS) Manager.
-
Кликните по соответствующему имени в левой панели своего окна.
-
Кликните дважды по аплету Server Certificates. Он отобразит установленные в настоящее время сертификаты на вашем сервере.
-
Кликните по действию рядом с правой частью вашего экрана, которая сообщает Create Certificate Request….
-
Заполните Common name квалифицированным именем DNS, с которым будет работать ваш вебсайт. Это имя, которое пользователь будет набирать в своём браузере для получения доступа к данному вебсайту.
-
Organization является именем вашей компании или организации. Обычно эта информация должна соответствовать какой- либо находящейся в файле с CA, поэтому это может потребовать некоторого времени чтобы проверить другой, возможно уже имеющийся у вас, сертификат, так что проверьте, что вы набрали ту же самую информацию.
-
Organizational unit (Подразделение) может быть выбрано по вашему смотрению. Я часто набираю слово
Web
. -
Для окончания с данным окном наберите City/locality и State/province. Проверьте, что вы вводите название своего штата целиком, например, California. Они не любят сокращения.
-
Кликните Next.
-
Увеличьте Bit length до значения не менее, по крайней мере, 2048. Обычно оно рассматривается как минимальный стандарт в отрасли.
-
Кликните Next.
-
Наберите расположение где вы хотите сохранить и и имя для своего нового CSR. Обычно вы устанавливаете это в текстовом файле (
.txt
). Убедитесь, что вы определили полное имя файла, включая его расширение. Я обнаружил, что если вы этого не сделаете, этот файл уйдёт в никуда.
-
Кликните Finish и просмотрите вновь созданный файл. Он будет представлять мешанину из букв и цифр, что нормально!
-
Теперь вы можете выполнить работу со своим веб интерфейсом общедоступного CA и воспользоваться данным новым CSR при осуществлении официального запроса на получение нового сертификата SSL. Когда вас запросят, вставьте содержимое данного файла CSR в их систему. Это последний самый раз, когда вам понадобится этот CSR.
Совет Каждая служба поддержки выполняет это индивидуально, но все они делают это через вебсайт, который руководит последовательностью этапов, которые вы должны пройти. Многие CA делают возможной генерацию пробного сертификата на 15 или 30 дней, поэтому вы можете проверить это бесплатно.
-
После того, как CA удостоверит ваши запрос и CSR, они выпустят для вас ссылку, по которой вы можете загрузить свой новый сертификат. Сделайте это и скачайте этот фай, после чего скопируйте его на свой веб сервер.
-
Когда этот сертификат размещён на вашем сервере, вам необходимо импортировать его в IIS. Вернитесь в раздел Server Certificates и в этот раз кликните Complete Certificate Request….
-
Определите только что загруженный файл сертификата и заполните поле Friendly name, если вы его выбрали. Это описательное название, которое вы можете присвоить данному новому сертификату внутри IIS с тем, чтобы вы могли впоследствии идентифицировать его при назанчении для связывания. Обычно вы хотите сохранять этот сертификат в хранилище Personal, как это настроено по умолчанию.
-
Кликните OK, и это- всё! Ваш новый сертификат установлен и готов к использованию.
В данном рецепте мы запросили новый сертификат SSL из общедоступного Центра Сертификации (CA), которому мы отдаём предпочтение. Чтобы получить из него сертификат, мы должны выполнить с нашего сервера CSR. Когда мы создали свой CSR, мы просто копируем и вставляем его в веб интерфейс своего элемента CA, а он даёт нам на основании такого CSR новый сертификат. После загрузки этот новый сертификат можно импортировать назад в наш веб сервер, в котором он уже будет применён в целях нашего веб сайта.
Замечание | |
---|---|
Одно важное замечание; после того, как вы установить свой новый сертификат на вашем сервере, кликните дважды по этому сертификату чтобы открыть его. Вы можете пожелать удостовериться, что у вас имеется отображаемое на главной странице ваших свойств сертификата сообщение: You have a private key that corresponds to this certificate. (У вас имеется соответствующий данному сертификату личный ключ). Оно отображается рядом с нижней строкой закладки General вашего сертификата. Если вы не видите этого сообщения, что- то у вас работает не корректно с вашим CSR и вы, скорее всего, должны запустить процесс запроса другой копии этого сертификата.Наличие персонального ключа, который соответствует вашему сертификату SSL является критически важным для надлежащей работы вашего вебсайта. |
Существует множество причин по которым вам может понадобиться перемещать или копировать некий SSL сертификат с одного веб сайта на другой. Если вы купили какой- либо сертификат с групповым символом для своей сетевой среды, скорее всего вы собираетесь применять один и тот же сертификат на множестве различных серверов, поскольку его можно применять для подтверждения множества вебсайтов и имён DNS. Даже если вы применяете сертификат с единственным именем, вы можете включить множество серверов для размещения одного и того же сайта, который может быть настроен неким образовм балансировки нагрузки. В этом случае вам также необходим один и тот же сертификат SSL на каждом из таких веб серверов, так как они все потенциально способны принимать обмен от клиентов.
При перемещении или копировании сертификата с одного сервера на другой несомненно существует верный и ошибочный пути, которыми можно воспользоваться. Давайте потратим немного времени на копирование некоторого сертификата с одного сервера на другой, чтобы ознакомиться с данной задачей.
У нас имеются в нашей среде две коробки с включёнными Windows Server 2016. Обе они предназначены для веб серверов, размещающих один и тот же вебсайт. На обеих установлен IIS. Необходимый нам сертификат был установлен на первичном сервере. Теперь нам нужно экспортировать этот сертификат оттуда и успешно экспортировать его на наш второй сервер.
Для копирования сертификата с ондного сервера на другой выполните следующие шаги:
-
Из Диспетчера сервера на вашем первом веб сервере запустите в меню Tools Internet Information Services (IIS) Manager.
-
Кликните по имени вашего сервера в панели в левой части окна.
-
Кликните дважды по аплету Server Certificates для просмотра установленных на этом сервере в настоящий момент сертификатов.
-
Для нашего примера я собираюсь воспользоваться сертификатом с групповым символом установленном на данном сервере. Кликните правой кнопкой по этому сертификату и выберите Export….
-
Выберите местоположение для сохранения экспортируемого файла и введите пароль, который будет применён для защиты этого файла.
-
Кликнув OK вы создадите файл
PFX
и поместите его на свой Рабочий стол (Desktop), либо куда- то куда вы попросили сохранять его. Теперь скопируйте файлPFX
на свой второй веб сервер. -
Откройте консоль Диспетчера IIS на втором сервере и переместитесь в то же самое место Server Certificates.
-
Кликните правой кнопкой по центральной панели и выберите Import…. Другим способом вы можете выбрать действие Import… в правой панели окна.
-
Отыщите местоположение вашего сертификата и введите пароль, который вы применили для защиты своего файла
PFX
. -
Перед тем как кликнуть OK, примите решение, хотите ли вы чтобы этот сертификат можно было экспортировать с данного второго сервера. Иногда это желательно если вы планируете снова иметь экспорт сертификата в будущем. Если у вас нет причин делать этого, пройдите далее и снимите отметку с этого блока. Снятие пометки с Allow this certificate to be exported (Разрешить экспорт данного сертификата) поможет ограничить число мест, в которых у вас имеются свободно выпускаемые в вашей сетевой среде сертификаты. Чем больше у вас имеется потенциально способных экспортироваться сертификатов, тем больше возможностей что вы упустите их из своих рук.
-
Когда вы кликните OK, ваш сертификат должен быть теперь установленым и стать видимым изнутри вашего окна IIS.
-
Кликните дважды по этому сертификату и проверьте другие свойства чтобы убедиться что всё выглядит правильным. Удостоверьтесь, что внизу видите сообщение, которое гласит You have a private key that corresponds to this certificate (У вас имеется частный ключ, который соответствует данному сертификату).
Мы воспользовались консолью Диспетчера IIS для экспорта и импорта некоторого сертификата, что является достаточно ясной и простой задачей, если вы её выполнили хотя бы раз и поняли весь процесс. Критическим моментом является гарантирование того, что ваш экспорт содержит информацию необходимого частного ключа. Если это не так, подобные сертификат не будет в состоянии удостоверять надлежащим образом процесс обмена. Применение IIS для выполнения данной задачи является наилучшим вариантом для перемещения сертификатов. Вы также можете воспользоваться оснасткой MMC для сертификатов, однако это слегка сложнее. Если вы попытаетесь воспользоваться этой консолью, система спросит у вас желаете вы или нет экспортировать данный частный ключ. Опция по умолчанию установлена в значение No, do not export the private key (Нет, не экспортировать данный частный ключ). Распространённая ошибка состоит в оставлении данной настройки в её положении и удивлении в последующем: почему ваш сертификат не работает должным образом на прочих серверах, на которых вы его установили. Вы должны проверить что выбрали параметр Yes, export the private key (Да, выполнить экспорт частного ключа).
Срок действия сертификатов истёк; это всего лишь факт из жизни. Очень часто я обнаруживаю компании, приобретшие сертификаты SSL на основе очень короткого срока действия, обычно всего лишь на год. Это означает, что необходимо обновлять все сертификаты каждый год. Однако, загрузки новой копии сертификата и установки его на ваш веб сервер недостаточно чтобы он продолжал работу. Простое помещение такого нового сертификата на его место на вашем сервере не означает, что IIS собирается начать применять этот новый сертификат для подтверждения обмена на вашем вебсайте. Даже если вы удалите старый сертификат, отсутствует действие, которое было осуществлено внутри IIS чтобы сообщить, что этот новый сертификат, который внезапно появился является именно тем, который необходимо начать применять для вашего вебсайта. Поэто му нам всегда необходимо выполнять эти дополнительные изменения вручную. Всякий раз, когда вы заменяете некий сертификат, вы также проходите в IIS и изменяете связывание на этом вебсайте. Это выглядит особой головной болью, когда вы имеете автоматическое обновление сертификата через нечто подобное Autoenrollment (Автоматической компоновке). Вы ошибочно можете полагать, что вы рассмотрели эту функциональность один раз и больше не должны ничего предпринимать для обновления своих сертификатов, поскольку они будут обновяться автоматически на уровне сервера. Однако, увы, это не так; до сих пор нам приходилось переходить в IIS и изменять связывание вручную. Не бойтесь, будущее уже пришло...
Команда IIS внесла простое, но очень мощное изменение чтобы помочь с данной проблемой в новой версии IIS, которая поставляется с Windows Server 2016. На самом деле эта функция уже присутствовала в Windows Server 2012 R2 при первой итерации, однако я всё же не видел, чтобы кто- то пользовался ею, поэтому для основного народа это будет новым словом. Эта новая функция называется Certificate Rebind (Повторное связывание сертификата) и, когда установлена, вызывает автоматическое распознавание со стороны IIS установки нового сертификата и автоматическое повторное связывание соответствующего вебсайта на использование данной новой копии вместо оригинала с истекшим сроком действия. Давайте рассмотрим общий интерфейс с тем, чтобы вы знали как включать и выключать эту опцию. Ма даже слегка заглянем к ней под капот, чтобы вы понимали как эта функциональность работает.
Данная работа будет выполнена на нашем веб сервере Windows Server 2016. У нас имеется установленная IIS и мы имеем запущенный вебсайт HTTPS с уже привязанным к этому сайту сертификатом.
Для включения Certificate Rebind на вашем веб сервере IIS следуйте приведёнными ниже шагами:
-
Изнутри меню Tools Диспетчера сервера откройте Internet Information Services (IIS) Manager.
-
В левой панели окна кликните по имени своего вебсайта.
-
Кликните дважды по аплету Server Certificates.
-
В правой панели окна кликните по действию с названием Enable Automatic Rebind of Renewed Certificate (Включить автоматическое повторное связывание обновлённого сертификата).
-
Это то что нужно! IIS теперь настроен таким образом, чтобы он распознавал установку обновлённого сертификата и будет далее автоматически привязывать его к вашему вебсайту с тем, чтобы применять этот новый сертификат. Теперь давайте рассмотрим как этот процесс работает в действительности.
-
Воспользуетесь приглашением командной строки или экран Start для запуска
Taskschd.msc
. Это Windows Task Scheduler (Планировщик задач Windows). -
В панели с левой стороны переместитесь к Task Scheduler Library | Microsoft | Windows | CertificateServicesClient.
-
Вы можете увидеть включённую в расписание задачу с названием IIS-AutoCertRebind. Именно она является магией Server Certificates. Когда к вашей системе Windows Server 2016 добавляется некий сертификат, или выполняется его обновление, протоколируется некоторое событие. После регистрации этого события, обнаруженная нами задача подцепляет это событие и использует имеющуюся в нём информацию чтобы проинформировать о необходимости повторного связывания эти вебсайты с данными новыми сертификатами.
-
Если вы вернётесь назад в IIS и кликните на Action для Disable Automatic Rebind of Renewed Certificate (Выключение автоматического связывания обновлённого сертификата), вы отметите, что обсуждаемая задача исчезнет из перечня в расписании.
Повторное связывание сертификата на самом деле простое действие по включению внутри IIS, однако оно может сделать разницу в том будет ли у вас в офисе хороший или плохой день. Будучи включённым, это свойство строит в расписании внутри Windows некую задачу, которая переключает команды для привязки нашего вебсайта IIS к его новому сертификату. Эта задача взводится событием,которое регистрируется в Windows при установке нового сертификата или обновлении существующего. При включённом Certificate Rebind и настройке вашего распространения набора сертификатов на автоматический режим при помощи Autoenrollment, вы теперь можете на самом деле автоматизировать обновление сертификатов в вашей сетевой среде!
Раскрутка веб сервера, реализация необходимой роли IIS и размещение некоторого вебсайта являются прекрасными первыми шагами. В зависимости от требующегося размера и важности вашего вебсайта вам могут понадобиться множество работающих веб серверов, которые будут обслуживать точные копии одного и того же сайта и иметь балансировку нагрузки, настроенную между множеством веб серверов. С другой стороны более вероятно, что ваш вебсайт в действительности будет недостаточно загружать ресурсы ваших серверов, нежели испытывать перегрузку, и, таким образом, вы сейчас создали свой новый веб сервер, размещающий одиночный вебсайт, который в действительности совсем не создаёт бремени. Существует ли способ, которым мы можем использовать такое дополнительное оборудование, которое в настоящее время простаивает? Возможно, у вас имеются дополнительные вебсайты или веб службы, которые нужно включить и для которых вы вы планировали раскрутить множество серверов. Хорошая новость состоит в том, что IIS имеет возможность размещения множества различных веб служб одновременно. Мы можем взять такой недозагруженный сервер и создать дополнительные прослушивания вебсайтов на нём, чтобы он мог обслуживать множество веб страниц с одного и того же физического сервера.
Существует пара различных способов, которыми мы можем размещать множество вебсайтов на одном и том же сервере IIS в одно и то же время, а именно, через использование множества портов или множества IP адресов, давайте уделим минутку чтобы попробовать оба способа.
Мы собираемся сейчас использовать IIS на нашем сервере
WEB1
чтобы разместить
множество вебсайтов. Нам также понадобится доступ к DNSчтобы создавать имена для этих вебсайтов.
Воспользуйтесь следующими шагами для создания множества вебсайтов на одном и том же сервере IIS:
-
Вначале нам необходимо создать некоторые сайты, которые будут обслуживаться IIS. Внутри моей папки
c:\inetpub
я просто создам четыре новые папки. Внутри какждой папки будет присутствовать простой файлDefault.htm
, который содержит некий текст. Таким образом я смогу обслуживать эти различные веб страницы на различных сайтах внутри IIS, а позже просматривать их по отдельности чтобы доказать что IIS обслуживает все эти различные веб страницы.
-
Теперь откройте Internet Information Services (IIS) Manager и просмотрите папку Sites. Кликните правой кнопкой по Sites и выберите Add Website… четыре различных раза чтобы пройти через процесс создания четырёх новых вебсайтов. Для каждого сайта убедитесь что вы выбрали соответствующую папку на своём жёстком диске для обслуживания правильной страницы.
-
На этот момент времени у нас имеется только один IP адрес на своём веб сервере. Поэтому чтобы позволить IIS размещать множество вебсайтов по этому отдельному IP адресу мы собираемся выбрать подход, при котором каждый вебсайт работает по своему собственному номеру порта. Когда вы настраиваете экран Add Website, определите уникальный номер порта в сеансе Binding для каждого сайта. Это сделает возможной одновременную работу всех четырёх вебсайтов с применением одного и того же IP адреса, так как каждый сайт будет работать по уникальному номеру порта.
-
Теперь вы можете увидеть что все четыре наших вебсайта стартовали, поричём каждый из них работает по своему собственному номеру порта.
-
Компьютеры клиентов в вашей сетевой среде теперь могут просматривать следующие ссылки и успешно обозревать различные вебстраницы, обслуживаемые с нашего сервера IIS:
-
Запрос пользователей на написание определённого номера порта когда он хочет поучить доступ к вебсайтам не является чем- то, за что они будут вам признательны, поэтому давайте попытаемся разместить эти четыре различных вебсайта на нашем сервере
WEB1
другим образом. Вместо использования различных номеров портов, мы теперь применим подход размещения каждого вебсайта по своему уникальному IP адресу. Чтобы начать этот процесс, откройте свойства NIC сервераWEB1
и подключите три дополнительных IP адреса, которыми мы сможем воспользоваться специально для размещения таких вебсайтов.
-
Теперь назад, вовнутрь IIS, кликните по каждому из ваших вебсайтов и измените Bindings…, чтобы каждый вебсайт вновь использовал порт со значением по умолчанию
80
, однако он также работает по своему собственному уникальному IP адресу.
-
Раз четыре вебсайта работают каждый по своему собственному IP адресу, вы можете создать записи DNS хостов с тем, чтобы каждый также имел уникальное имя DNS в данной сетевой среде. Просто укажите этим четырём новым именам DNS соответствующие IP адреса по которым исполняются эти сайты, и ваши клиентские компьютеры смогут теперь осуществлять доступ к вебсайтам через персональные имена хостов в этой сетевой среде:
-
Решили ли вы размещать множество вебсайтов на одном вебсервере расщепляя доступ на уровне портов или на уровне IP адресов, важно знать, что вы можете слегка подвинуть пределы своего веб сервера размещая множество вещей в одно и то же время. IIS имеет большие возможности обработки такого подразделения ресурсов, а если и далее ваше оборудование продолжает оставаться с той же задачей эффективности, вы можете продолжить вертикальный рост таким образом и сберечь число работающих у вас серверов по мере необходимости дополнительных веб ресурсов.
Как мы уже видели, достаточно просто настраивать множество вебсайтов внутри IIS назначая индивидуальные IP адреса для каждого сайта. Работа более одного вебсайта на одном веб сервере является распространённой практикой и, следовательно, иногда это означает, что ваш вебсервер имеет множество настроенных на нём IP адресов. Однако, порой это невозможно. Например, вы можете работать на веб сервере, развёрнутом в сторону Интернета и, следовательно, существует ограничение по общему числу возможных IP адресов общего доступа, которые можно применять. В этом случае вы можете внезапно столкнуться с потребностью размещать множество вебсайтов по одному IP адресу, однако при этом вы не хотите заставлять пользователей иметь необходимость набирать определённые номера портов чтобы получить доступ к правильному вебсайту.
Именно здесь в игру вступают заголовки хоста. Заголовки хоста могут быть настроены на ваших вебсайтах
таким образом, чтобы такой сайт отвечал на определённый приходящий от клиента запрос. Такие запросы
заголовка могут помочь веб серверу делать различие в обмене, направляя запросы пользователей на вебсайты
для соответствующих им сайтов внутри IIS. Давайте поработаем вместе над настройкой двух вебсайтов
внутри IIS и заставим их использовать один и тот же IP адрес и порт. Мы хотим, чтобы всё оставалось
стандартным как раз уж оно поступает на этот порт, поэтому мы хотим чтобы они оба использовали порт
80
, однако у нас имеется только один IP адрес доступный для
настройки на нашем веб сервере.
Работа будет выполняться изнутри IIS на нашем веб сервере Server 2016. Мы также воспользуемся клиентским компьютером для проверки связи с этими вебсайтами когда мы закончим их настройку.
Чтобы создать два вебсайта которые совместно используют один IP адрес и расщепляют обмен применяя заголовки хоста, выполните следующие шаги:
-
На своём веб сервере откройте File Explorer и создайте новую папку с именем
C:\Websites
. Внутри этой папки создайте две новые папки и назовите ихSite1
иSite2
. -
Внутри каждой папки создайте новый
Default.htm
. Теперь у вас должно быть два различных файлаDefault.htm
, один находится внутри папкиSite1
, а второй располагается в папкеSite2
. -
Поместите какой- нибудь текст в каждый из этих файлов
Default.htm
. Обеспечьте чтобы какой- либо текст делал различие между вебсайтами чтобы вы могли что они работают как положено, когда мы выполним через несколько минут проверку. -
Откройте в меню Tools Диспетчера сервера Internet Information Services (IIS) Manager.
-
В оконной панели слева раскройте имя вашего веб сервера. Затем кликните правой кнопкой по папке
Sites
и выберитеAdd Website…
. -
Мы собираемся присвоить нашему сайту имя
Site1
и выберем свою папкуC:\Websites\Site1
в качестве местоположения нашего вебсайта. Я также собираюсь раскрыть в ниспадающем меню поле IP address и определить один и только один IP адрес в этой системе чтобы мы могли доказать что заголовки хоста работают как им положено. Запомните, наше намерение состоит в получении двух вебсайтов работающих по одной и той же комбинации IP адреса и порта. -
Вот часть, которая может оказаться для вас неведомой землёй, поле Host name. Это имя DNS, которое будет запрашиваться для данного вебсайта при обращении к нему. Поэтому какое бы DNS имя не собирались набирать в своём браузере ваши пользователи, именно это имя они должны ввести здесь. Мы собираемся использовать имя
mysite1.mydomain.local
.
-
Кликните OK и вы получите свой первый вебсайт запущенным и работающим на вашем вебсервере.
-
Теперь пройдём весь процесс аналогичный описанному выше, но на этот раз определим всю информацию для
Site2
. Мы собираемся выбрать те же самые IP address и Port, однако в поле Host name мы собираемся определить другое имя:
-
Теперь у нас имеются два вебсайта, причём оба работают по одним и тем же IP адресу и порту на одном и том же веб сервере. Давайте выполним проверку со своего клиентского компьютера, чтобы определить будет или нет IIS достаточно интеллектуален чтобы делать различие между этими вебсайтами.
Совет Не забудьте создать записи DNS для этих вебсайтов! Вам будет необходимо разместить созданные для
mysite1.mydomain.local
иmysite2.mydomain.local
записи, причём обе они должны указывать на один и тот же IP адрес вашего веб сервера, которым в нашем случае является10.0.0.6
. -
С клиентского компьютера зайдите на
http://mysite1.mydomain.local
. Вы должны увидеть текст из файлаDefault.htm
, который мы поместили в папкуSite1
нашего вебсервера.
-
Теперь просмотрите span class="term">
http://mysite1.mydomain.local
. Мы можем отметить, что наш вебсервер распознаёт наши запросы для второго вебсайта и, даже несмотря на то что они работают с одним и тем же IP адресом, наш запрос отправляется ко второму вебсайту.
Когда мы настроили вебсайты внутри IIS на применение различных заголовков хоста, это дало нам возможность публикации множества вебсайтов по одним и тем же IP адресу и порту для веб запросов, приходящих на различные имена хостов и перенаправлять эти запросы на соответствующий вебсайт основываясь на имени заголовка хоста, который запрашивается компьютером клиента. Важно отметить, что для надлежащей работы данного механизма запросы для этих веб страниц должны приходить с полными именами; вы не можете ввести в свой браузер IP адрес и ожидать что это будет работать, так как теперь мы совместно используем этот IP адрес для двух или более вебсайтов.