Интерактивный литературный клуб "Начало"


Vox audita perit, littera scripta manet - Рукописи не горят.

Создание сертификата Exchange 2013

Раздел для Дождя. Много всего интересного.

Создание сертификата Exchange 2013

Сообщение TheRain » 14 авг 2013, 10:32

== Сценарий:

Сервер CAS Exchange используется для доступа клиентов через Интернет по протоколам SMTP и POP3 с шифрованием SSL. При этом также во внутренней сети организации применяется Outlook 2007/2010/2013, работающий с Offline Address Book на сервере OWA, или же по иным причинам требуется внутренний HTTPS-доступ к серверу OWA. Доступ к серверу извне и изнутри осуществляется по разным адресам (например owa.external.ru и owa.internal.local).

== Проблема:

SSL-сертификат для веб-сайта OWA (самоподписанный или от доменного СА) генерируется только для основного FQDN-имени сервера (вида owa.internal.local). В результате при использовании одного из адресов веб-броузером или почтовым клиентом выдается ошибка несовпадения FQDN-имени сервера с FQND-именем в сертификате. В зависимости от сценария и клиентского ПО последствия могут варьироваться от постоянных назойливых предупреждений, требующих ручного подтверждения, до невозможности доступа к почте.

== Решение:

В дальнейшем предполагается использование доменного центра сертификации на базе Windows Server, на котором опубликован шаблон сертификата типа WebServer (как правило, он публикуется по умолчанию).

Внимание! Для CAS на базе Exchange 2013 в командах работы с сертификатами нужно обязательно указывать параметр -Server SERVER_FQDN, иначе коммандлет может работать не с тем сервером, с каким предполагается. На серверах Exchange 2007 / 2010 эти команды по умолчанию работают с локальным сервером.

I) Краткий список команд (для Exchange 2010 / 2013)

$Data = New-ExchangeCertificate -server SERVER_FQDN -SubjectName "c=RU, o=ORG_NAME, cn=SERVER_FQDN" -generaterequest -friendlyname "OWA Certificate for SERVER" -domainname [все FQDN через запятую] -PrivateKeyExportable $true

Set-Content -path "c:\certreq.txt" -Value $Data

certreq -attrib "CertificateTemplate:WebServer" -attrib "Exportable:TRUE" -submit c:\certreq.txt c:\cert.cer

Import-ExchangeCertificate -Server SERVER_FQDN -FileData ([Byte[]]$(Get-Content -Path c:\cert.cer -Encoding byte -ReadCount 0))

Get-ExchangeCertificate -Server SERVER_FQDN | fl

Enable-ExchangeCertificate -Server SERVER_FQDN -thumbprint THUMBPRINT -services "SMTP,IIS,POP,IMAP"

Get-ExchangeCertificate -Server SERVER_FQDN


II) Полный список с комментариями

FQDN = fully qualified domain name (имя вида severname.domain.ru)

1) На сервере CAS сгенерировать запрос на новый сертификат с помощью следующей команды Exchange Management Shell:

Для Exchange 2007 (одна команда):
New-ExchangeCertificate -generaterequest -SubjectName "c=RU, o=ORG_NAME, cn=SERVER_FQDN" -friendlyname "описание сертификата" -domainname [список FQDN через запятую] -PrivateKeyExportable $true -path c:\certreq.txt

Для Exchange 2010 / 2013 (две команды):
$Data = New-ExchangeCertificate -Server SERVER_FQDN -SubjectName "c=RU, o=ORG_NAME, cn=SERVER_FQDN" -generaterequest -friendlyname "описание сертификата" -domainname [список FQDN через запятую] -PrivateKeyExportable $true

Set-Content -path "c:\certreq.txt" -Value $Data

Необходимо указать следующие имена:
- короткое (NetBIOS) название сервера;
- все FQDN, по которым к серверу получают доступ пользователи и приложения, как внутренние, так и внешние (через Интернет);
- имя autodiscover.AD_DOMAIN_FQDN.

Запрос должен быть создан на сервере Exchange, на котором впоследствии будет импортирован соответствующий сертификат. Exchange не сможет корректно импортировать сертификат, выданный по запросу, сгенерированному на другом сервере Exchange, пусть даже полностью аналогичном. Если необходимо запускать команды на другом сервере, для работы с целевым сервером следует использовать параметр -Server SERVER_FQDN.

2) На сервере, имеющем доступ к online certification authority (в том числе на самом сервере Exchange, если он в том же домене, что и СА), использовать certreq (встроенную утилиту Windows Server) для отправки запроса к доменной СА:

certreq -attrib "CertificateTemplate:WebServer" -attrib "Exportable:TRUE" -submit c:\certreq.txt c:\cert.cer

(будет отображено окно с запросом, к какому из перечисленных в нем СА отправлять запрос - выбрать тот на котором опубликован шаблон сертификата веб-сервера)

(использование на сервере СА графической консоли Certification Authority для генерации сертификата по файлу запроса невозможно: в создаваемом на сервере Exchange запросе отсутствует название шаблона, по которому должен генерироваться сертификат)

3) На сервере Exchange, где сгенерирован запрос, импортировать и задействовать сертификат следующей командой:

Для Exchange 2007 (одна команда):

Import-ExchangeCertificate -path c:\cert.cer -friendlyname "понятное_название" | Enable-ExchangeCertificate -services "SMTP,IIS,POP,IMAP"

Для Exchange 2010 / 2013 (три команды):

Import-ExchangeCertificate -Server SERVER_FQDN -FileData ([Byte[]]$(Get-Content -Path c:\cert.cer -Encoding byte -ReadCount 0))

Get-ExchangeCertificate -Server SERVER_FQDN

Enable-ExchangeCertificate -Server SERVER_FQDN -thumbprint THUMBPRINT -services "SMTP,IIS,POP,IMAP"

Здесь THUMBPRINT - отпечаток нового сертификата, выдаваемый командой Get-ExchangeCertificate

Указать после -services, какие конкретно сервисы должны использовать данный сертификат (они должны быть установлены на данном сервере). В ответ на вопрос о замене существующих сертификатов нажать A (для всех).

4) Проверить, что сертификат успешно установлен и задействуется для нужных служб:

Get-ExchangeCertificate -Server SERVER_FQDN | fl

5) Проверить что сертификат используется для веб-интерфейса OWA. В оснастке управления IIS щелкнуть правой кнопкой мыши на корне сайта, выбрать пункт контекстного меню Bindings, выбрать протокол HTTPS и нажать Edit. Выбрать правильный сертификат, если потребуется. Для Exchange 2013 проделать то же самое для сайта Exchange Back End.

6) (опционально) Удалить ненужные самоподписанные сертификаты:

Remove-ExchangeCertificate -Server SERVER_FQDN -thumbprint THUMBPRINT

где отпечаток THUMBPRINT выдается командой Get-ExchangeCertificate.

7) (за пределами домена AD, где работает СА) На каждом компьютере, с которого к серверу выполняется подключение по SSL независимо от протокола, установить публичный сертификат центра сертификации, выдавшего сертификат серверу Exchange, в хранилище сертификатов Trusted Root Certificate Authorities / Доверенные корневые центры сертификации, принадлежащее КОМПЬЮТЕРУ (через оснастку ММС и плагин Certificates / Сертификаты).

Примечание. Некоторые почтовые клиенты (например TheBat) имеют свое собственное хранилище сертификатов и не пользуются хранилищем Windows для определения доверенных центров сертификации. В этом случае публичный сертификат центра сертификации должен быть импортирован в хранилище почтового клиента с помощью средств этого клиента.

Взято: http://forum.ixbt.com/topic.cgi?id=7:42655
Изменения в природе происходят год от года,
Непогода нынче в моде, непогода, непогода.
Аватара пользователя
TheRain
Администратор
Администратор
 
Сообщения: 229
Зарегистрирован: 14 фев 2011, 15:02
Блог: Просмотр блога (2)

Вернуться в Для Дождя

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron