11 января 2008

Настройка Apache Tomcat для работы с протоколом SSL

SSL (Secure Socket Layer) - это технология, которая позволяет устанавливать бзопасное соеденение между веб броузером и веб сервером. Это значит что каждая из сторон будет отправлять данные в зашифрованном виде, а другая сторона будет их расшифровывать перед обработкой. Второй важный аспект в работе протокола SSL - это аутентификация. Прежде чем расказать серверу свои секретные данные (логин, пароль) сервер предоставит униальный "Сертификат" - доказательства того, что этот сервер действительно тот за кого себя выдаёт . Так же возможны случаи, когда сервер запрашивает "сертификат" у броузера клиента - "Клиентская аутентификация".

От теории к практики. Для начала нам необходимо сгенерировать сертификат для Apach Tomcat. В этой задаче нам поможет утилита keytool. В более ранние версии J2se она невходила и приходилось качать дополнительный пакет JSSE (java SE security) , но начиная с j2se 1.4 такой необходимости нету.
Итак, для генерации сертификатов, необходимо запустить утилиту keytool.
В Windows:
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA
в Unix:
$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA

После запуска вам будет предложен ряд вопросов, ответив на которые вы сгенерируете сертификат.
Внимание. Это всего лишь тестовый сертификат, который может использоватся для разработки и тестирования приложений, в реальных бизнес приложениях сертифиаты должны быть выданы специальными ЦСК (центр сертификации ключей), которые несут ответственность за их автентичность.

Сертификат сгенерирован, осталось разрешить томкату принимать SSL соеденения. Для этого в файле $CATALINA_HOME/conf/server.xml неоходимо раскоментировать запись:"SSL HTTP/1.1 Connector", где указывается параметры соеденения, у меня она выглядит следующим образом:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" />
Протестировать SSL можно:
https://localhost:8443
Броузер проинформирует о наличии на сервере сертификата от неизвестной организации и предложит принять его, что и надо сделать для загрузки страници.

2 комментария:

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

Поправьте пожалуйста Apach на Apache, а то как то не хорошо.

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

резонно.