Rambler's Top100IT • archiv

rus / eng | Логин | Комментарий к колонке | Печать | Почта | Клуб




Колонки


Настройка SSL при совместной работе серверов IIS и Tomcat

 
(Сергей Кулеватов)

В статье кратко описано создание и настройка технологии, осуществлённая мною до рабочего состояния, поддержки SSL протокола при совместном функционировании серверов Microsoft Internet Information Server 4.0 и Jakarta Tomcat 3.3 через редирект (ISAPI фильтр). И всё это крутится на ОС Microsoft Windows NT 4.0 c Microsoft Service Pack 6a при установленном JDK 1.3.1.

Так как я начинал с чистой машины, то буду описывать всё по порядку. Первым делом осуществил установку ОС Microsoft Windows NT 4.0 (с поддержкой русского языка) на чистый компьютер. Характеристики "железа" следующие: фирма- производитель - Compaq, модель - Prolinea 5100, процессор - Pentium (1 шт.), рабочая частота процессора - 100 МГц, объём оперативной памяти - 32 Мб, объём жёсткого диска - 607 Мб (присутствие привода CD-ROM и 3'5 дюймового дисковода подразумевается). После этого установил JDK 1.3.1, Jakarta Tomcat 3.3, Microsoft Service Pack 3 и Microsoft Internet Explorer 4. Потом установил Microsoft Option Pack 4.0, выбрав из него необходимые компоненты, включая Microsoft Internet Information Server. Ну в завершение накрыл это Microsoft Service Pack 6a.

Дальнейшую настройку можно разделить на настройку Tomkat'а и настройку IIS'а. Настройку IIS'а, в свою очередь, можно разделить на настройку самого сервера и получение сертификата SSL. Следует учесть, что здесь не описана общая настройка Tomcat'а, как то создание необходимых системных переменных, развёртывание сервера и т.д., так как её можно прочитать в прилагающейся к серверу документации. Настройка Tomkat'а заключалась в следующих этапах: создание собственного контекста в поддиректории webapps, создание и редактирование настроечных файлов для контекста, и копирование редиректа. Создание собственного контекста заключается в создании новой директории, имя которой и будет являться названием контекста, и копирования в эту директорию всех рабочих файлов Вашего приложения (jsp-ишек, Bean'ов, Servlet'ов и т. д.) Создание настроечных файлов описано в "родной" документации ("tomcat-iis-howto.html", раздел "Creating the Configuration Files"). Я сделал, как написано. Выполнил команду startup.bat с параметром 'jkconf' после чего Tomcat'ом были созданы настроечные файлы 'conf/auto/iis_redirect.reg' и 'conf/auto/urivorkermap.properties'. Потом я открыл проводник, выбрал в нём файл 'iis_redirect.reg' и быстро нажал два раза на нём мышкой, после чего появилось сообщение о том, что данные занесены в реестр. Далее я исправил файлы, которые описаны в созданном файле 'iis_redirect.reg' в двух последних строчках. Это редактирование заключалось в следующем:

1) в файл uriworkermap.properties из поддиректории conf/auto, в самый его конец, добавил 2 строки:

/имя контекста=$(default.worker)

/имя контекста/*=$(default.worker)

2) в файле workers.properties из поддиректории conf/jk исправил значения следующих строк на актуальные значения:

workers.tomcat_home

workers.java_home

Кроме того следует проверить значение переменной ps.

Установка редиректа заключается в создании в директории bin поддиректории native и копировании туда файла isapi_redirect.dll, скачанного с http://jakarta.tomcat.org из версии Tomcat'а 3.3 (его размер равен 131072 байт). На этом настройку Tomcat'а можно считать законченной.

Настройка IIS'а для совместной работы с Tomcat'ом описана в уже упоминавшейся статье "tomcat-iis-howto.html". Следуя этим инструкциям, я думаю, вы не ошибётесь. Для получения же сертификата я пользовался подпрограммой Microsoft Key Manager. Она вызывается из Microsoft Management Consol'и нажатием на кнопку с изображением руки, сжимающей ключ. Технология такова, что с помощью этой программы сначала делается запрос на получение тестового сертификата SSL. Результатом этой операции будет являться текстовый файл. После этого идём на www.thawte.com, ищем там ссылку "Free Test SSL Sertificate", и следуем инструкциям на экране. Конечным результатом ваших усилий будет являться ответ, получив который, копируем его в файл и с помощью Microsoft Key Manager устанавливаем новый сертификат в соответствии с заранее сформированным запросом (следует учесть, что таким способом можно получить только бесплатный тестовый сертификат). После установки сертификата открываем окно свойств вашего WEB сервера IIS, идём на закладку "Directory Security", нажимаем кнопку "Edit" и устанавливаем флажок "Require Secure Channel when accessing this resource". Вот и всё.

Теперь запускаем оба сервера и пытаемся соединиться с Tomcat'ом через IIS. Самое простой тест это просмотр контекста examples, который установлен в IIS по умолчанию. Для этого наберите в browser'е, установленном на той же ЭВМ, что и IIS и Tomcat, следующий адрес: https://localhost/examples/jsp/index.html - всё должно работать с поддержкой шифрования передаваемой информации. Для обращения же к Вашему контексту на любой машине привожу общий шаблон адреса: https://<hostname>/<context>/<indexpage>

Обнаруженные особенности
1) Первая моя попытка выполнения описанной задачи состояла в подключении сервера Tomcat 3.2.4 к IIS, с которым "привинтить" SSL не получилось. Простую работу по протоколу http настроить удалось, а расширить до поддержки SSL - нет.

2) Версия Tomcat 3.3 некорректно обрабатывает системную переменную 'CLASSPATH', рекомендуемую к инициализации в autoexec.bat (для клонов Windows). То есть при смене версий Tomkat'а от 3.2.4 до 3.3 во время работы "engine servlet" не могли найтись классы обработки. Для исправления этой ситуации пришлось подправить файл bin/tomcat.bat (после ссылки ":setClasspath" в строку установки значения переменной 'CLASSPATH' надо добавить лексему '%CLASSPATH%;' после знака равно).

3) Так же при переходе к версии 3.3 Tomcat'а выяснилось его несколько другая обработка кодировки символов для входного и выходного потоков на экран браузера. Для защиты от этих изменений в начале каждой страницы была использована лексема JSP синтаксиса:

'<%@ page contentType="text/html; charset=windows-1251" %>'

4) Выяснилось, что при работе по протоколу 'https' через IIS объект HttpServletRequest, обрабатываемый в методах doGet() и doPost(), обладает дополнительными атрибутами, по сравнению с работой просто по протоколу 'http'.

редакция документа от 19 декабря 2001 года




Справка | Условия Copyright © 1999 — 2008, IT • archiv.
В начало | Логин | Комментарий к колонке | Поиск | Почта