IIS 8: Улучшенное управление сертификатами

Гениально обычное решение сложной препядствия — как глоток свежайшего воздуха. Конкретно такое сопоставление уместно для нового центрального хранилища сертификатов (CCS, central certificate store) в IIS 8. В прошлых версиях IIS сертификаты устанавливали на веб-фермы при помощи Windows PowerShell Remoting. Это целенаправлено, если вы работаете с IIS на старенькых серверах. Но если вы один из счастливчиков, осуществивших обновление до IIS 8, то скоро вы обнаружите, что процесс работы с сертификатами приятен как легкий ветерок.

Займитесь подготовкой хранилища

CCS основано на поистине ординарном принципе. Расположите все сертификаты в общий ресурс Windows File Server, потом сделайте так, чтоб привязки сайтов использовали эти сертификаты заместо установленных локально. Это не только лишь уменьшит хаос, вносимый установкой сертификатов на несколько серверов, да и существенно уменьшит издержки времени на управление и усилий на поиск сертификатов, которые скоро истекут.

1-ый шаг — создание общего ресурса файлового сервера, на котором будут храниться .pfx-файлы сертификатов. Вы сможете сделать его на любом файловом сервере, независимо от ОС. Лучше, чтоб файловый сервер был кластерным, чтоб не было компонента, отказ которого приведет к отказу всей системы. Ведь вы не желаете утратить доступ к этим сертификатам.

Если вы используете веб-ферму, у вас уже имеется кластерный файловый сервер — либо распределенная файловая система (Distributed File System, DFS) — доступный для вашей конфигурации совместного доступа к данным. Это хорошее место, в каком можно сделать очередной общий ресурс для сертификатов. Сделайте учетную запись юзера с правами на чтение из этого ресурса, и все будет готово.

При поиске сертификатов в хранилище CCS берет имя хоста из привязки сайта и отыскивает файл с точно таким же именованием и разширением .pfx. К примеру, если имеется два сайта с именами хостов www.WebBikez.com и www.MyCompany.com, то файлы сертификатов обязаны иметь имена:

www.WebBikez.com.pfx
www.MyCompany.com.pfx

Заметьте: если в сертификатах употребляются знаки подстановки (*.MyCompany.com), следует поменять их на подчеркивания (_.MyCompany.com.pfx).

Можно добавлять сертификаты в этот общий ресурс каждый раз, когда вы добавляете сайты. Установка сертификатов на веб-серверы больше не нужна. Последующий шаг — установка и настройка CCS на ваших веб-серверах с IIS 8, которая позволит использовать эти сертификаты.

Установка CCS

Процесс установки несложен. Ее можно выполнить при помощи графических средств управления либо Windows PowerShell. Дальше пойдет речь о процессе установки CCS на локальный веб-сервер. Об установке на удаленные веб-серверы, в том числе с Windows Server 2012 Core, я расскажу в последнем разделе.

Сначала, вы должны установить на собственный веб-сервер Centralized SSL Certificate Support. Вы сможете пользоваться графическими инструментами Server Manager либо выполнить командлет Install-WindowsFeature в Windows PowerShell:

PS> Install-WindowsFeature Web-CertProvider

После удачной установки этого средства вы увидите новый значок в IIS Manager в разделе Management (рис. 1).

IIS 8: Улучшенное управление сертификатами

Рис. 1. Значок CCS в разделе Management диспетчера IIS Manager

Щелкните значок, чтоб открыть форму опции CCS (рис. 2). Активизируйте CCS, потом укажите UNC общего каталога и учетную запись юзера с правами на чтение из ресурса.

IIS 8: Улучшенное управление сертификатами

Рис. 2. Имеется графическая форма опции центрального хранилища сертификатов

Заметьте: понизу формы можно указать пароль для закрытого ключа, если вы экспортировали .pfx-файл с паролем. Обычно, сертификаты экспортируют с паролями, потому в прошлом примере введен пароль.

Эти графические инструменты довольно ординарны в использовании, когда необходимо активизировать и настроить CCS на одном локальном сервере. Если требуется заавтоматизировать процесс, можно пользоваться Windows PowerShell. При таковой установке CCS пригодится 6 командлетов:

Clear-WebCentralCertProvider
Disable-WebCentralCertProvider
Enable-WebCentralCertProvider
Get-WebCentralCertProvider
Set-WebCentralCertProvider
Set-WebCentralCertProviderCredential

Имена этих командлетов довольно понятно их обрисовывают, не считая того, для их имеются справочные файлы. Вот вам наглядный пример активизации и опции CCS на локальном веб-сервере при помощи командлета Enable-WebCentralCertProvider:

PS> Enable-WebCentralCertProvider -CertStoreLocation \serverdccertstore -UserName companycertuser -Password P@ssw0rd -PrivateKeyPassword P@ssw0rd

Создание привязок сайтов

Завершающий шаг процесса — создание, модификация либо добавление привязок сайта, использующего CCS (рис. 3). Направьте внимание, что появился новый флаг «Use Centralized Certificate Store».

IIS 8: Улучшенное управление сертификатами

Рис. 3. Завершающий шаг — привязка сайта к центральному хранилищу сертификатов

Вот вам наглядный пример того, как при помощи Windows PowerShell сделать сайт с корректной SSL-привязкой. Вся соль в параметре –SslFlags командлета New-WebSite. SSLFlags определяет, где находится сертификат, применяемый при привязке. При хранении в CCS задайте значение 2 либо 3, зависимо от того, используете ли вы Server Name Indication (SNI). Вот его вероятные значения:

0 — обыденный сертификат в хранилище сертификатов Windows
1 — SNI-сертификат
2 — CCS
3 — SNI-сертификат в CCS

Ах так сделать пул приложений и сайт с внедрением SNI-сертификата в CCS:

PS C:> New-WebAppPool -Name WebBikez_pool
PS C:> New-Website -Name WebBikez -HostHeader www.WebBikez.com -PhysicalPath c:inetpubwwwroot -ApplicationPool webbikez_Pool -Ssl -port 443 -SslFlags 3 -force

Если вам просто необходимо добавить привязку к существующему сайту, сделайте это так:

PS C:> New-WebBinding -Name «WebBikez» -Protocol https -Port 443 -HostHeader www.WebBikez.com –SslFlags 3

Установка CCS на удаленные веб-серверы

Вы сможете делать все эти команды, используя Windows PowerShell Remoting. Подсоединение к удаленным серверам (в т.ч. и с Windows Server 2012 Core) и установка на их CCS, не представляют трудности.

Сделайте сеанс удаленного доступа командлетом New-PSSession:

PS C:> $Sessions=New-PSSession -ComputerName server2,server3

Установите CCS на удаленные компы:

PS C:> Invoke-Command -Session $sessions {Install-WindowsFeature Web-CertProvider}

Тут начинаются трудности. У командлета Enable-WebCentralCertProvider имеется параметр CertStoreLocation, принимающий сетевой ресурс, в каком находится сертификаты. Дело в том, что командлет пробует проверить доступность общего ресурса перед записью инфы в реестр.

В Windows PowerShell Remoting это приводит к дилемме нескольких переходов. Вы соединяетесь с удаленным компом, который, в свою очередь, пробует объединиться с удаленным компом. Вероятнее всего, через какое-то время группа разработки IIS поправит командлет. А пока они это не сделали, можно воспользоваться обходным методом. Просто вручную добавьте записи в реестр.

Чтоб активизировать CCS:

Invoke-Command -Session $sessions {Set-ItemProperty -Path HKLM:SOFTWAREMicrosoftIISCentralCertProvider -Name Enabled -Value 1}

Чтоб задать местопребывание общего ресурса для сертификатов:

Invoke-Command -Session $sessions {Set-ItemProperty -Path HKLM:SOFTWAREMicrosoftIISCentralCertProvider -Name CertStoreLocation -Value \ServerDCCertStore}

Вы не можете впрямую записать в реестр имя юзера и пароль, но эту оставшуюся часть работы выполнит командлет Set-WebCentralCertProvider:

Invoke-Command -Session $sessions {Set-WebCentralCertProvider -Password P@ssw0rd -UserName Companycertuser -PrivateKeyPassword P@ssw0rd}

Сейчас вы сможете добавить веб-привязки собственных сайтов для HTTPS, используя Windows PowerShell Remoting, и все будет готово. Если у вас не было повода опробовать IIS 8, полностью может быть, что познание того, как работает CCS, будет убедительной исходя из убеждений бизнеса предпосылкой поэкспериментировать с ним. Это всего только одна из новых способностей IIS 8, которые следует принимать во внимание при предстоящем движении вперед.

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

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