вторник, 15 ноября 2011 г.

Outlook 2010, ошибка с сертификатом

Оказывается Outlook 2010 не работает с самоподписанными сертификатами, в независимости являются ли они доверенными или нет.
В данном случае самоподписанными стоит считать сертификаты выданные сами себе и с Basic Constraints = "End Entity"

Outlook 2010 отображает следующее сообщение:


При этом другие службы Exchange работают без каких-либо проблем, например, OWA, autodiscover и т.д. С сертификатом все в порядке: доверие есть, не просрочен, с именами все в порядке.

Решением проблемы было выпуск сертификата Центром Сертификатов.

Генри Вальтер пишет: http://blogs.msexchange.org/walther/2010/05/18/certificate-warning-when-using-self-signed-exchange-certficate-and-outlook-2010/
а Microsoft молчит.

13 комментариев:

Анонимный комментирует...

почерпнул много нового

SexualOrange комментирует...

Добрый день.
Столкнулся с проблемой ,не могу подключиться к нескольким почтовым ящикам по ActiveSync. Это ящики администраторов домена. Все остальные пользователи подключаются нормально. Все настройки проверил ,всё идентично. Была мысль пересоздать ящик т.к. он переносился уже несколько раз при миграции с 2003-2007-2010.
Но если пересоздать ящик то изменится его sid и при отправке ответе на старые письма(внутри организации) будет выдаваться ошибка.
Скажите есть ли возможность пересоздать ящик и сохранить старый sid ?

Efimov Gennady комментирует...

sid не влияет на доставку почты.. при ответе на письмо через outlook используется exchangeDN (это атрибут пользователя legacyExchangeDN).. вы можете создать новые почтовые ящики с новыми пользователями и перенести со старых почтовых ящиков все прокси-адреса (proxyAdresses).. также добавьте LegacyExchangeDN со старого почтового ящика в ProxyAddresses нового, тогда проблем с доставкой писем при ответе на старые письма не должно быть.

перед тем как это делать, проверьте журналы событий на client access серверах (event log)... обычно при возникновении проблем с activeSync (и не только), пишутся ошибки (здесь видимо проблема с нехваткой прав на определенные объекты в AD)...

Анонимный комментирует...

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

Efimov Gennady комментирует...

Может быть у вас другие условия? Сертификат End-Entity и Self-Sign?

Анонимный комментирует...

Прочитал оригинал статьи, перечитал про End-Entity и Self-Sign. Если правильно понимаю, сертификат Self-Sign не может быть никем иначе, как End-Entity. Так как Basic Constraints — это самое простое расширение и говорит о типе получателя сертификата — CA сервер или конечный потребитель. Собственно вопрос: с какой стати Outlook (Windows, точнее система безопасности и IE в частности) будет доверять какому-то сертификату, хвостов которого, нет в хранилище сертификатов. Ответ: правильно, не будет. Собственно предыдущий пост был написан как ответ, но вопрос, видимо, в жесткости перевода. "Certificate warning when using a self-signed...." это приведет к ошибке и последующему отказу Outlook соединяться с сервером, но это не значит, что Outlook не будет работать. Достаточно добавить этот сертификат в доверенные-доверенные :) . В оригинале статьи речь шла о доменных машинах и по умолчанию сертификат доменного CA уже есть на таких машинах. Но если вы захотите получать почту из офиса на домашнем компьютере, то получите ту же самую ошибку (хоть сертификат и выдан CA). Так что решение лежит не в способе получения сертификата, а в способе его проверки и доверия к нему. В оригинале статьи рассматривался конкретный случай с доменными клиентами. PS надо отдать должное MS в устранении глухого молчания предшественников Outlook 2010. Например Outlook 2003 и 2007 вообще не выдавали никакого окна с предупреждением о сертификате, они просто не подключались и молчали как рыбы. В 2010 есть хоть какая-то диагностика. Итог: Outlook ругается на самоподписанный сертификат? Мы поможем заставить его замолчать и заняться делом! :)

Efimov Gennady комментирует...

>> Если правильно понимаю, сертификат Self-Sign не может быть никем иначе, как End-Entity

Не правильно понимаете. Например сертификат Root CA всегда самоподписанный, но тем не менее не End Entity. End Entity относится к basic constraint и ограничивает цепочку сертификатов.

>> Достаточно добавить этот сертификат в доверенные-доверенные

Тоже не верно. В Outlook 2010 это не работает. Если сертификат End-Entity и Self-Sign (такой генерируется exchange-сервером, 2007 и 2010), то Outlook ему не будет доверять даже если вы его добавите в контейнер Trusted Root CA. Правда не проверял на Trusted People, но скорее всего это тоже не работает.

>> Например Outlook 2003 и 2007 вообще не выдавали никакого окна с предупреждением о сертификате, они просто не подключались и молчали как рыбы.

Это не так. 2007 замечательно подключался к autodiscover и EWS и его устраивал self-sign сертификат, даже без доверия. То есть дополнительных действий на клиенте не нужно проделывать. Другое дело Anywhere, но об этом речь не ведется. В 2003 таких сервисов (EWS и Autodiscover) не было, поэтому и ругаться не на кого, он просто подключается к MAPI/RPC-серверу, который сертификаты не использует.

>>Собственно вопрос: с какой стати Outlook (Windows, точнее система безопасности и IE в частности)

То же не верно. Windows (не IE; IE это пользователь PKI и криптографии, а не поставщик) предоставляет очень гибкий криптографический API, с помощью которого вы сами выбираете уровни доверия к тем или иным субъектам. Можете пользоваться криптопарой с доверием или без, с проверкой CRL или без, и т.д.

Анонимный комментирует...

>>Не правильно понимаете. Например сертификат Root CA всегда самоподписанный, но тем не менее не End Entity. End Entity относится к basic constraint и ограничивает цепочку сертификатов.
Вы продолжаете выхватывать из контекста. Хорошо, мы говорим не про PKI в целом, а конкретном Self-Sign, выпущенном средствами Exchange. Именно в этом ключе я и говорил: Self-Sign не может быть никем иначе, как End-Entity


>>Тоже не верно. В Outlook 2010 это не работает. Если сертификат End-Entity и Self-Sign (такой генерируется exchange-сервером, 2007 и 2010)

Аргументы закончились, готов спорить. Проверял, работает. Сертификат, выпущенный Exchange 2010 при правильном размещении не вызывает ошибок Outlook 2010.


>>В 2003 таких сервисов (EWS и Autodiscover) не было, поэтому и ругаться не на кого, он просто подключается к MAPI/RPC-серверу, который сертификаты не использует.

У вас для внешних сотрудников был открыт RPC к внутренним почтовикам? Вот незадача, а как же подключался Outlook 2003 к Ex 2007-2010 если есть только 443. А как же RPC over HTTPS? А туннелирование в HTTPS у нас уже без сертификата обходится потому что Outlook 2003 не умеет, не знает, не хочет? Да, Autodiscover отсутствовал, но мы с вами за него прописывали все ручками.

>>То же не верно. Windows (не IE; IE это пользователь PKI и криптографии, а не поставщик) предоставляет очень гибкий криптографический API, с помощью которого вы сами выбираете уровни доверия к тем или иным субъектам. Можете пользоваться криптопарой с доверием или без, с проверкой CRL или без, и т.д.

Совершенно верно, я об этом и пишу. Как только ставится любая OC, в ней сразу присутствуют сертификаты доверенных центров. О "нашем" Exchange они ничего не знают, до тех пор пока ручками не пропишем (купим у нормального поставщика\поставим свой CA и опять же пропишем на клиенте в соответствующее хранилище) или не изменим уровень проверки\доверия . В случае оригинальной стать доверия к Exchange строится на доверии доменных машин к корпоративному центру сертификации, чей RootCA сертификат попадает в хранилище после должной настройки корневого центра в домене. Но ваш домашний компьютер по прежнему не будет доверять вашему рабочему почтовику пока вы НЕ ПРОПИШИТЕ в Trusted Root ваш сертификат (либо сертификат вашего корпоративного CA либо ваш САМОПОДПИСАННЫЙ сертификат)

И это БУДЕТ работать и РАБОТАЕТ, если вы все-таки проверите.

Вопрос оригинальной статьи касается только того, что доменные машины не воспринимают самоподписанный сертификат. Да так и есть. Правильное решение - выдать сертификат через доменный CA. Но если центра сертификации нет, то и это решается групповой политикий и распространением самоподписанного сертификата.


Собственно наш спор немного бессмысленнен.
Да, по умолчанию в домене или нет, доверия самоподписанному сертификату нет. И это не вопрос Outlook, это вопрос системных настроек.
Да, любой сертификат, выданный даже центром сертификации будет вызывать ошибку до тех пор пока этот сертификат или родительский не будет помещен в Trusted Root.
Сертификат выпущенный командлетом New-Exchangecertificate будет работать у пользователя с Outlook 2010 без ошибок если этого захотеть.
Фраза: Оказывается Outlook 2010 не работает с самоподписанными сертификатами, в независимости являются ли они доверенными или нет - ошибочна.
Приведенный оригинал статьи описывает не невозможность работы, а некоторые шероховатости при настройке.
Если у вас есть Exchange с самоподписанным сертификатом, готов настроить у себя Outlook и выслать скрины с пошаговыми манипуляциями для поиска истины.

P.S. Тут нет ни одного админа, который бы настраивал Exch-Outlook с самоподписанным сертификатом? Ау-уу :)

Efimov Gennady комментирует...

обязательно проверьте, но с теми условиями, что я описал:
- внутренние пользователи;
- MAPI;
- Outlook 2010;
- сертификат не PKI, а Self-Sign и обязательно с End-Entity ограничением.

После этого я готов буду с вами хоть что-то обсуждать. А так пустой разговор.

Анонимный комментирует...

Геннадий, разговор, действительно пустой. Если у вас нет времени проверить или не получается, это не значит что что-то не работает. Единственное о чем я писал - это некоректность формулировок в вашей заметке. Исправть статью и не вводите людей в заблуждение. Вы сами размещаете скриншот с ошибкой и при этом пишите о том, что OWA работает. Тогда пишите честно, у нас тут IT, либо 0 либо 1. OWA выдаст вам предупреждение на самоподписанный сертификат. Если вы администратор - вы забъете тревогу, и не станете нажимать кнопку ВСЕ РАВНО ПРОДОЛЖИТЬ, как 99% пользователей. И ЭТО вы называете РАБОТАЕТ? Нет, это костыль, и мне жалко ваших клиентов, если вы им впариваете такие решения. Вы взяли оригинал статьи и написали некие умозаключения не вдаваясь в подробности и забывая о существенных деталях. Да, возможно вы держите в голове и понимаете о чем идет речь, но вы пишите блог и как минимум начинающий администратор может купиться на ваши титулы и принять это за чистую монету. Работает, это когда вы открываете OWA, а следующим шагом вводите логин и пароль, а не когда у вас красный банер на весь экран и нужно еще что-то нажать чтоб добраться до логина и пароля. В outlook просто отсутствует диалог доверия недоверенному сертификату , но это не значит что НЕ РАБОТАЕТ, это значит НЕНАСТРОЕНО. Я проверял и у меня работает, мне не нужно это проделывать еще раз. Я предложил настроить ваш сервер и выслать вам инструкцию, но вы отказались. Вот такие блоги и ведут к полному замутнению сознания у начинающих специалистов. Хотите вести блог - ну так хоть не вводите в заблуждение, просто вставьте тему, ОРИГИНАЛЬНУЮ тему из статьи и вставьте ссылку на оригинал. А нашу переписку удалите, чтоб никто не впал в ступор. PS данное решение проверено на Ex2010, Outlook2010, Outlook for Mac, iPhon, iPad внутри и снаружи.

Efimov Gennady комментирует...

прочитайте, пожалуйста, внимательно и мою статью и статью по ссылке.
я бы не стал писать эту статью если бы не проверил. Я поэтому и удивился, потому что в Outlook 2007 такого поведения не было. Далее я нашел статью Henrik Walther. Читайте:
As some of us are aware and as stated in the Exchange 2007 Autodisover Service whitepaper (more specifically the “Autodiscover and Certificates” section) for a certificate to be considered valid, it must have the following criteria for the Autodiscover service:

The client can follow the certificate chain up to the trusted root.
The name matches the URL that the client is trying to communicate with.
The certificate is current and has not expired.

However for domain-joined Outlook 2007 clients were designed to ignore the first validity check. This meant that we wouldn’t get any certificate errors in Outlook 2007 even though a self-signed certificate (created by Exchange 2007 setup) was used.

With Outlook 2010 this is no longer the case. You see with Outlook 2010 the Outlook team decided that the default behavior should be that Outlook always warn the end user if a self-signed certificate is used.

Как бы вы не добавляли сертификат сервера и куда бы, Outlook 2010 все равно будет напоминать вам об этом.

Efimov Gennady комментирует...

наверное вы придрались к слову "не работает" :) я сейчас не помню точного поведения клиента Outlook 2010, может быть после нажатия на кнопку продолжить он нормально будет себя вести, но вот напоминать о невалидном сертификате он точно будет постоянно, что не очень хорошо для пользователей. И статья то как раз про это. Причем даже ссылка есть на оригинальную, если уж мои формулировки не устраивают.

В ваших комментариях неточностей и некорректных формулировок еще больше. К примеру: >> Вы сами размещаете скриншот с ошибкой и при этом пишите о том, что OWA работает. << Я написал что OWA замечательно работает, да и какое отношение OWA имеет к Outlook?

Не вижу смысла вообще обсуждать. Я точно уверен в своих словах (мои слова подтверждаются в других статьях). Если вы хотя бы скриншотики скинете в которых у вас будет все ОК при описанных условиях, то тогда я уже пошевелюсь и перепроверю. А так только время терять.

Анонимный комментирует...

Hey There. I found your weblog using msn. That is a really smartly written article.

I'll make sure to bookmark it and come back to learn more of your helpful info. Thanks for the post. I'll definitely return.


Feel free to surf to my homepage - web site