Один раз настроив публикацию Outlook Web Access и Outlook Anywhere через ISA Server 2006 мы благополучно забываем о том, что сертификат не вечен и подлежит обновлению. В моем случае Exchange 2007 был запущен в эксплуатацию 23 декабря 2007 года и подошло время обновлять сертификат. К своему удивлению и сожалению я напрочь забыл, как это делать. В голове остался только общий алгоритм: запросить новый сертификат, установить его на Exchange, экспортировать на ISA Server, сменить сертификат на Web Listener и все. Но о мелочах и тонкостях мы с легкостью забываем…

Небольшая вводная часть о топологии реализации. Exchange 2007 установлен во внутренней сети в режиме — все роли на одном сервере, на периметре сети развернут Isa Server 2006 с помощью которого осуществляется публикация OWA, ActiveSync и пр. для мобильных клиентов.

exchange-topologyПри развертывании использовалась схема Split DNS. Внутренее FQDN имя сервера Exchange 2007 — exch.domain.local, внешнее FQDN — owa.pubdomain.ru.

Стоит отдельно сказать что данный механизм также подходит для получения сертификата для начального развертывания Exchange 2007 и публикации на ISA Server 2006

Запрос нового сертификата

Запрос нового сертификата нужно осуществлять только с помощью PowerShell и командлета New-ExchangeCertificate.

New-ExchangeCertificate -GenerateRequest -IncludeAutoDiscover -PrivateKeyExportable $true
-SubjectName "CN=owa.pubdomain.ru, O=ALVIK LLC, C=RU"
-DomainName exch.domain.local, owa.pubdomain.ru,  mail.pubdomain.ru
-FriendlyName "Microsoft Exchange 2007" -Path c:\exchange2007-cert.req

На что следует обратить внимание?

GenerateRequest — он сигнализирует о создании файла запроса на сертификат в сторонний центр сертификации. Без указания данного флага Exchange сервер сгенерирует самоподписанный сертификат.

SubjectName — поле CN должно в точности повторять FQDN к которому происходит обращение клиентов.

DomainName — должен содержать все альтернативные доменные имена, если таковы имеются. В моем случае пригодилось внутреннее имя сервера.

IncludeAutoDiscover — при наличии данного флага в запрос добавляются записи вида autodiscovery.domain.local для всех обслуживаемых доменов. Очень удобный параметр, не нужно в ручную перечислять данные записи.

PrivateKeyExportable — данный флаг позволит нам в дальнейшем экспортировать сертификат с закрытым ключем для передачи его на Isa Server 2006.

После выполнения данной операции будет сформирован текстовый файл запроса, который нужно передать в центр сертификации.

Открываем центр сертификации по адресу http://CA-Name/certsrv/ и делаем расширенный запрос сертификата:

cert-welcome

Выбираем расширенный запрос сертификата:
cert-req

Вставляем текст запроса:
cert-issue

После окончания операции мы получим .cer файл с новым сертификатом.

А где же закрытый ключ?

Естественно .cer файл не содержит закрытого ключа и на этом этапе обычно возникают трудности. Кажется, что сделал что-то не так, но все идет по плану. Exchange 2007 сам генерирует закрытый ключ и оставляет его в контейнере с запрошенным сертификатом и только после завершения процедуры импорта две половинки целого вновь соединятся и мы сможем получить долгожданный .pfx файл.

Импорт сертификата необходимо опять выполнять через PowerShell.

Import-ExchangeCertificate c:\certnew.cer

В результате импорта Exchange 2007 покажет вам отпечаток сертификата:

2FF1AB2A04C03480387D93175F939120CC855E4F

Можно «запомнить» данное значения для легкости дальнейшего поиска и работы с сертификатом.

Теперь включаем данный сертификат в работу на требуемые службы в нашем случае это IIS и SMTP.

Enable-ExchangeCertificate 2FF1AB2A04C03480387D93175F939120CC855E4F -Services IIS,SMTP

Теперь можно экспортировать сертификат для передачи его на ISA Server.

Эту операцию можно сделать через оснастку «Сертификаты» в MMC, либо командлетом PowerShell

Export-ExchangeCertificate C84F388FB0A141CB4464B45A8AFC4F185FE3A5C1
   -Password P@ssw0rd -Path d:\exch-for-isa.pfx

Если вы будете делать экспорт сертификата средствами консоли MMC не забудьте снять галочку «Включить усиленную защиту ключа».

Перенос сертификата на ISA Server 2006

Здесь все гораздо проще. Открываем консоль MMC — Сертификаты — Локальный компьютер. Импортируем полученный сертификат, не ставя галочку об усиленной защите ключа и помечаем его экспортируемым.

cert-import

После этого открываем консоль управления ISA Server 2006 и открываем свойства соответствующего Web-Listener (Прослушиватель) на вкладке Сертификат нажимаем Выбор сертификата. В открывшемся окне должны присутствовать оба сертификата — старый и новый. Их легко отличить по дате выпуска и сроку завершения.

cert-isa

Выбираем новый сертификат и нажимаем выбрать. Применяем новую политику ISA Server.

Теперь все должно работать. После выполнения всех необходимых проверок можно старый сертификат удалить.