Настройка удаленного управления IIS

Вам когда-нибудь требовалось удаленно управлять IIS-сервером, поменять его конфигурацию либо добавлять обычной сайт, при этом делать все это из удаленного местоположения? Разумеется, что по суждениям безопасности нельзя просто открыть IIS Manager и подсоединиться к удаленному серверу. На каждом IIS-сервере, которым вы собираетесь управлять, нужно активизировать и настроить удаленное управление и назначить сертификат для HTTPS.

Можно стремительно и без труда настроить удаленное управление IIS в графическом IIS Manager, но тогда вы должны посиживать за веб-сервером либо использовать Remote Desktop Protocol (RDP). Если у вас несколько веб-серверов, которыми требуется управлять удаленно, либо если вы, как и я, работаете с Server Core, то использовать GUI IIS Manager нецелесообразно либо даже нереально.

Можно настроить удаленное управление хоть каким количеством веб-серверов при помощи Windows PowerShell. Вы сможете это сделать для хоть какого подходящего вам количества веб-серверов, при этом за раз. Воспользуйтесь специальной функцией Windows PowerShell — удаленным взамодействием (remoting) Windows PowerShell.

Будет нужно активизировать удаленное взаимодействие Windows PowerShell на всех IIS-серверах. Без этого никак. Идеальнее всего активизировать удаленное взаимодействие при помощи объекта групповой политики (Group Policy Object, GPO). Если вы не понимаете, как это сделать, либо вам нужна дополнительная информация об этом процессе, прочитайте нашу бесплатную электрическую книжку «Secrets of PowerShell Remoting», написанную Доном Джоунзом (Don Jones) и медиком Тобиасом Уэлтнером (Dr. Tobias Weltner).

Перед тем как сказать: «Я не вправе это делать», сядьте и прочитайте это управление. Сделайте настройку в испытательной среде, попросите профессионалов по безопасности все проверить и получите разрешение на активизацию удаленного взаимодействия. Если ваши веб-серверы работают под управлением Windows Server 2012, удаленное взаимодействие уже активизировано. По другому это будет нужно сделать перед выполнением действий, о которых я расскажу дальше.

Удаленное взаимодействие Windows PowerShell стопроцентно неопасно и будет нужно в дальнейшем для решения многих задач по управлению IIS. Процесс опции удаленного взаимодействия несложен, все же, он состоит из нескольких операций. Вот что вам предстоит:

Сделать по сеансу Windows PowerShell для каждого из серверов.
Установить службу IIS Web Management Service (WMSvc).
Активизировать IIS WMSvc.
Запустить IIS WMSvc.
Поменять временный сертификат.
Подсоединиться в IIS Manager.

В собственном примере я настрою удаленное управление на 4 IIS-серверах: Web1, Web2, Web3 и Web4, при этом сходу на всех. После того как они заработают, я заменю временный сертификат на доверяемый сертификат от Active Directory Certificate Services (AD CS).

1. Создание сеансов удаленного доступа через Windows PowerShell для веб-серверов

1-ый шаг — создание сеансов удаленного доступа через Windows PowerShell для веб-серверов. Начните с сотворения переменной $Servers, которая будет содержать имена компов, являющихся веб-серверами. Потом сделайте сеансы и сохраните их в переменной $Sessions:

PS> C:> $Servers = ‘web1′, ‘web2′, ‘web3′, ‘web4′
PS> C:> $Sessions = New-PSSession –ComputerName $Servers

Обе переменные будут необходимы на всем протяжении процесса. Не пытайтесь уменьшить этот код, заменив его однострочной командой. Может быть, вы будете заполнять $Servers из текстового файла, CSV-файла либо Active Directory (используя командлет Get-ADComputer), но это уже другая тема.

2. Установка IIS WMSvc

IIS WMSvc — дополнительный компонент, который будет нужно добавить в IIS. Это нетрудно сделать в Windows PowerShell при помощи сеансов удаленного доступа (если у вас Windows Server 2012, то 1-ая строчка не пригодится):

PS C:> Invoke-Command –Session $Sessions –ScriptBlock {Import-Module ServerManager}
PS C:> Invoke-Command –Session $Sessions –ScriptBlock {Add-WindowsFeature Web-Mgmt-Service}

Итак, вы установили IIS WMSvc. Последующий шаг — ее активизация.

3. Активизация IIS WMSvc

По дефлоту эта служба управления настроена на разрешение удостоверений Windows, внедрение порта 8172 и временного сертификата. Пока оставим все как есть — мы заменим временный сертификат на доверяемый в самом конце процесса. Чтоб активизировать службу управления, измените записи реестра на удаленных веб-серверах:

PS C:> Invoke-command –Session $Sessions -ScriptBlock{Set-ItemProperty -Path HKLM:SOFTWAREMicrosoftWebManagementServer -Name EnableRemoteManagement -Value 1}

Сейчас служба удаленного управления активна, и можно ее запустить.

4. Пуск IIS WMSvc

По дефлоту IIS WMSvc не запускается. На самом деле, служба настроена на пуск вручную. Если в дальнейшем вы перезагрузите веб-сервер, то служба управления не будет производиться. Измените тип пуска на Automatic, а потом запустите службу:

PS C:> Invoke-command –Session $Sessions -ScriptBlock {Set-Service -name WMSVC -StartupType Automatic}
PS C:> Invoke-command –Session $Sessions -ScriptBlock {Start-service WMSVC}

Сейчас служба управления производится, и вы сможете удаленно управлять веб-серверами в IIS Manager. Единственная неувязка — внедрение временного недоверяемого сертификата, потому поменяйте сертификат на доверяемый.

5. Подмена временного сертификата

Имеется много методов подмены временного сертификата, а именно, применение новейшей функции IIS 8 — хранения сертификатов в Central Certificate Store. Это мой любимый метод.

Я выполняю пару операций по копированию и установке нового сертификата из .pfx-файла, а потом задаю привязки сайтов для нового сертификата. В примере подразумевается, что сертификат с поддержкой поддоменов (wildcard certificate) хранится у меня на локальном компьютере в файле C:_.Company.loc.pfx. Поначалу скопируйте сертификат (.pfx-файл) на удаленные веб-серверы, потом установите сертификат при помощи CertUtil.exe:

PS C:> $Servers | Foreach-Object {Copy-Item -Path C:_.Company.loc.pfx -Destination «\$_c$»}
PS> c:> Invoke-Command -Session $Sessions {certutil -p P@ssw0rd -importpfx c:_.company.loc.pfx}

Направьте внимание, что я передаю пароль открытым текстом. Удаленное взаимодействие Windows PowerShell вполне неопасно и обеспечивает шифрование. После установки сертификата принципиально не запамятовать удалить .pfx-файлы с веб-серверов:

PS> $Servers | Foreach-Object {Remove-Item -Path «\$_c$_.Company.loc.pfx»}

Сейчас мы воспользуемся свойством Thumbprint (отпечаток) установленного сертификата — необходимо будет поменять привязки для службы управления. Чтоб это сделать, пригодится IIS-провайдер. Поначалу загрузите модуль WebAdministration на удаленные веб-серверы:

PS C:> Invoke-Command -Session $Sessions {Import-Module WebAdministration}

Получите свойство Thumbprint сертификата, нужное для сотворения новейшей привязки:

PS C:> Invoke-Command -Session $Sessions {$cert = Get-ChildItem -Path Cert:LocalMachineMy | Where {$_.subject -like «*company*»} | Select-Object -ExpandProperty Thumbprint}

Удалите старенькую SSL-привязку:

PS C:> Invoke-command -Session $Sessions {Remove-Item -Path IIS:SslBindings.0.0.0!8172}

Добавьте новейшую SSL-привязку, указав свойство Thumbprint сертификата:

PS C:> Invoke-Command -Session $Sessions {Get-Item -Path «cert:localmachinemy$cert» | New-Item -Path IIS:SslBindings.0.0.0!8172}

Сейчас вы готовы к подсоединению к веб-серверам в IIS Manager.

6. Подсоединение к удаленным веб-серверам в IIS Manager

Завершающий шаг — открыть IIS Manager, избрать Start Page в панели слева и избрать Connect to a server в центральной панели. Укажите имя сервера и свои удостоверения, и вы увидите новое соединение в навигационной панели IIS Manager.

Так как я часто выполняю такие операции, я взял приведенные выше команды и расположил их в сценарий. Если вы полагаете, что они потребуются вам более 1-го раза — а я уверен, что так и будет — всегда лучше заавтоматизировать этот процесс.

Аналогичный товар: Комментирование на данный момент запрещено, но Вы можете оставить ссылку на Ваш сайт.

Комментарии закрыты.