Услуги Сертификаты Новости Статьи База знаний Алгоритмы Портфолио Скачать Ссылки Поиск
Услуги arrow Статьи arrow .NET и IIS сертификаты SSL. Часть 3
.NET и IIS сертификаты SSL. Часть 3 Версия для печати Отправить на e-mail
20.02.2009
"Я знаю, что ничего не знаю." © Сократ

Всем привет!

В этой заметке я расскажу об организации связи между web-сервером Microsoft IIS 6.0 и клиентскими приложениями по безопасному протоколу SSL: вернее о настройке сервера IIS для подключения клиентов к Web-службе, опубликованной в нем.

Итак, всё по порядку.

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

Классическая схема - где-то есть центральная база и удаленные филиалы, которые могут быть и мобильными точками, ноутбуками, офисами, либо просто мобильными устройствами с доступом в Internet.

В предыдущих частях я уже говорил, как нужно настроить сервер, что нужно установить, как создать сертификаты. Теперь я хочу собрать все части воедино и подкрепить их скриншотами, для пущей наглядности.

1. Нужно развернуть на Windows 2003 IIS. Операционной системой может быть и не Windows 2003, а что-то иное. Главное, чтобы была возможность в ней настроить службу IIS с поддержкой SSL. Попутно я столкнулся с тем, что у меня на ноутбуке была предустановлена Vista Home Premium, а в ней, как я узнал позже, службу IIS 7.0 можно установить, только вот она не поддерживает SSL. Увы. Нужно иметь более серьезную версию операционной системы. Что, собственно логично, вряд ли кто-то будет использовать в "боевых" условиях IIS, установив его на ноутбук. Разве что для тестирования собственного приложения.

Как показано на рисунке №1, для активации протокола HTTPS Web-сервера IIS, нужно указать порт, по которому сервер будет ожидать обращения.

Настройка SSL порта

Порт может быть указан любой, однако, его отсутствие говорит IIS, что протокол HTTPS использоваться не будет.

2. Если предполагается использовать операции, которым потребуются дополнительные параметры мапинга расширений web-приложения, это можно задать, как показано на рисунке №2. В частности, тут указано, что приложению, реализованному в виде службы и вызываемому страницей с расширением *.ashx, потребуется команда "PUT". Ниже показано, как ее добавить в список стандартных команд, доступных приложению.

Настройки домашнего каталога Web-узла и мапинга расширений приложения

3. Безопасность каталога можно задать, как показано на рисунке №3. Здесь показано, что мое приложение будет разрешать аутентификацию анонимного пользователя, для чего обязательно нужно включить ему доступ.

 Нужно в разделе безопасности каталога разрешить анонимный доступ

4. В зависимости от той версии ASP.NET, для которой были скомпилированы библиотеки Вашего приложения, необходимо в настройках Web-каталога указать, какая версия ASP.NET будет вызвана для запуска Вашего приложения. Однако, чаще всего (на сегодняшний день иных настроек я не видел, возможно, далее это будет исправлено), обычно рабочей является версия 2.0.50727, даже если Ваши библиотеки были скомпилированы с помощью VS2008 под FrameWork 3.5SP1, эта настройка будет верной. Важно, чтобы нужный FrameWork был установлен на стороне сервера, где развернут IIS и Ваше Web-приложение.

Проверить версию ASP.NET

5. Еще одним важным шагом на пути к победе, является обязательное разрешение расширения Web-службы - ASP.NET в настройках IIS, как показано на рисунке №5. Без данной настройки Вам не удастся обратиться к приложению.

Разрешить использование web-расширения ASP.NET v.2.0.50727

6. Далее, нужно обязательно указать способ безопасного взаимодействия клиентов с Вашим приложением, а точнее - с Web-сервером. Для этого необходимо указать, будет ли сервер игнорировать, принимать, либо требовать сертификат пользователя, прежде, чем он установит соединение с удаленным пользовательским приложением.

Дополнительную настройку "Требуется безопасный канал (SSL)" Вы задаете исходя из потребностей Ваших задач. У меня такой необходимости не было. Проверка сертификата пользователя у меня выполнялась в коде службы.

Установить параметры безопасности и запроса сертификата клиента

7. И еще хочу заметить, что есть замечательная утилита компании Microsoft, которая мне очень помогла при проверке настроек моего сервера. Ее информация показана ниже на рисунке, загрузить ее можно здесь.

SSL Diagnostics Tool

Ну, а теперь, хочу рассказать о сертификатах.

Итак, когда выполнены все вышеперечисленные настройки Web-сервера IIS, необходимо иметь:

1. Корневой сертификат, с помощью которого будут подписаны все сертификаты: и Web-сервера, и клиентов, обращающихся к нему. Данный сертификат (*.p12) нужно поместить в корневой центр доверительных сертификатов локального компьютера (сервера).

2. Подписанный корневым сертификатом сертификат, предназначенный для Web-сервера IIS должен иметь имя в точности совпадающее с именем, под которым будут выполняться обращения со стороны клиентских приложений к данному сервера. Хочу обратить внимание, что имя регистро-зависимое. Оно может быть IP-адресом, либо простым символьным именем. Но, имя должно быть в точности таким, каким Вы будете его использовать.

Далее, данный файл сертификата сервера с именем <Ваш домен>.p12 (pfx) Вы должны импортировать в Персональные сертификаты локального компьютера (Вашего сервера). Если он правильно подписан и установлен, Вы не увидите никаких ошибок при его просмотре из консоли управления (вызывается командой MMC.EXE из консоли управления и в ней подключаются оснастки для просмотра сертификатов локального компьютера).

Далее, нужно в настройках IIS, как показано на рисунке №8, воспользоваться мастером выбора сертификата сервера и указать тот сертификат, который был установлен ранее (<Ваш домен>.p12), он будет доступен для выбора в момент работы мастера.

Выбор сертификата IIS с помощью мастера

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

На этом настройка и подготовка к работе с клиентскими приложениями завершена.

Следующим шагом является описание в коде клиентских приложений предоставления сертификата серверу для установки соединения с ним. Но это я планирую описать в следующей статье.

Продолжение следует...

Последнее обновление ( 20.02.2009 )
 
< Пред.   След. >