Обновление сертификата Exchange 2007 для Outlook Web Access (OWA) и не только
Один раз настроив публикацию Outlook Web Access и Outlook Anywhere через ISA Server 2006 мы благополучно забываем о том, что сертификат не вечен и подлежит обновлению. В моем случае Exchange 2007 был запущен в эксплуатацию 23 декабря 2007 года и подошло время обновлять сертификат. К своему удивлению и сожалению я напрочь забыл, как это делать. В голове остался только общий алгоритм: запросить новый сертификат, установить его на Exchange, экспортировать на ISA Server, сменить сертификат на Web Listener и все. Но о мелочах и тонкостях мы с легкостью забываем…
Небольшая вводная часть о топологии реализации. Exchange 2007 установлен во внутренней сети в режиме – все роли на одном сервере, на периметре сети развернут Isa Server 2006 с помощью которого осуществляется публикация OWA, ActiveSync и пр. для мобильных клиентов.
При развертывании использовалась схема 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/ и делаем расширенный запрос сертификата:
Выбираем расширенный запрос сертификата:
После окончания операции мы получим .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 – Сертификаты – Локальный компьютер. Импортируем полученный сертификат, не ставя галочку об усиленной защите ключа и помечаем его экспортируемым.
После этого открываем консоль управления ISA Server 2006 и открываем свойства соответствующего Web-Listener (Прослушиватель) на вкладке Сертификат нажимаем Выбор сертификата. В открывшемся окне должны присутствовать оба сертификата – старый и новый. Их легко отличить по дате выпуска и сроку завершения.
Выбираем новый сертификат и нажимаем выбрать. Применяем новую политику ISA Server.
Теперь все должно работать. После выполнения всех необходимых проверок можно старый сертификат удалить.

Замечание:
-DomainName owa.pubdomain.ru, exch.domain.local, mail.pubdomain.ru
В этом параметре надо на первое место обязательно поставить имя CN, т.е. owa.pubdomain.ru
одно маленькое замечание – мне пришлось обновить сертификат на IIS руками, чтоб была возможность экспортировать его в pfx
Для экспорта сертификата с закрытым ключем нужно пользоваться командлетом Export-ExchangeCertificate.
Добрый день.
Подскажите пожалуйста бы ли у когото из вас проблемы с несколькими сертификатами.
В частости один самоподписный ServerName а второй *.pubdomain.ru ?
Первый использую для сервиса SMTP
Второй для сервиса IIS
У меня такая проблема: При запуске клиента Outlook 2007 Вылетает 2 раза «Оповищение системы безопасности» -> … имеются замечания по сертификату безопасности узла. и отмечен пункт: «Имя сертификата безопасности недопустимо или не соотвествует имени узла»
Но в принципе все работает.
Кто то может помочь с проблемой?
Спасибо.
Вам нужно сделать единый сертификат для всех. Это более правильно и логично. Самоподписный лучше не использовать, раз есть возможность сделать *.pubdomain.ru
@Дмитрий Юзепчук
У внутренного домена другое имя. А у почтового домена *.pubdomain.ru
Проблема получается в том что Exchange при подключении Outlook выдает клиенту все сертификаты что у него есть. Хотя прописано что сертификат *.pubdomain.ru используется только для IIS сервиса.
В прошлом году мы не делали *.pubdomain.ru. Делали 5 жестких имен.
Но в этом году внешних имен стало больше и решили сделать *. При * alias имена дописывать нельзя.
Тут еще попутно возник можно ли в одном сертификате сделать * для нескольких доменов?
Или может у вас есть еще какието мысли?
@Andrey Iliyov
Проблему решил.
на ISA-сервере должен быть публичный сертификат от внешнего центра
на CAS-ах должен быть доменный сертификат.
На CAS-e: я снес сертификат со *. Самоподписному сертификату добавил Сервис «IIS».
И теперь все ок!
Возмущений по поводу сертификатов у клиентов Outlook-ов нет.
Публикации работают, используется двойной SSL бриджинг (тоннель от внешних клиентов до ISA работает на сертификате со *, тоннель от ISA до CAS-а работает на самоподписном сертификате)
Прекрасно! Спасибо за обратную связь!