Сервера приложений: интеграция Trusted Java и TrustedTLS - Документация
Перейти к содержанию

Документация

Сервера приложений: интеграция Trusted Java и TrustedTLS

В предлагаемом ниже материале рассматриваются методики построения защищенного канала до серверов приложений (Tomcat, IBM Websphere, Oracle Weblogic) на базе продукта TrustedTLS (веб-сервера Apache версии 2.2) для обеспечения конфиденциальности информации и аутентификации пользователей в приложениях, разворачиваемых на этих серверах. (Методики были проверены на операционной системе RedHat Enterprise Linux/CentOS 5.3 x86.)

В частности, рассматриваются вопросы обеспечения взаимодействия в цепочке <Клиент> - и - <Сервер приложений>, а также доставки сертификатов пользователей (и Apacheсервера) до сервера приложений.

Продукт Trusted Java также может быть интегрирован в составе рассматриваемых решений как мост для доступа приложений на Java к криптографическим операциям при использовании следующих связок:

Apache + Trusted TLS 2.2 + CSP 3.6/3.6 R2 + Tomcat 5.5/6.0/7.0 + Trusted Java
Apache + Trusted TLS 2.2 + CSP 3.6/3.6 R2 + IBM Websphere 6.1/7.0 + Trusted Java
Apache + Trusted TLS 2.2 + CSP 3.6/3.6 R2 + Oracle WebLogic Server 10.3.2 + Trusted Java

Передача сертификатов от Apache-сервера серверам приложений

Для использования сертификатов клиента (и сервера) на стороне развернутого приложения предлагается использовать на стороне Apache-сервера возможность модуля mod_headers вставлять в заголовок запроса переменную с содержимым из SSL-переменных.

Предполагается, что на Apache-сервере уже настроен модуль mod_digt_tls.so (продукт TrustedTLS) согласно прилагаемым к нему инструкциям.

В конфигурационном файле httpd.conf добавим строку загрузки модуля mod_headers LoadModule headers_module modules/mod_headers.so и в конфигурационном файле ssl.conf в секции прописываем строки

<IfModule mod_headers.c>
RequestHeader set Forwarded-SSL-CLIENT-CERT "%{SSL_CLIENT_CERT}s"
RequestHeader set Forwarded-SSL-SERVER-CERT "%{SSL_SERVER_CERT}s"
</IfModule>

Пересылка запросов серверу приложений от Apache-сервера

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

  • Apache-модуля mod_proxy, Специализированного WebServer Plug-ins

  • Apache-модуль Mod_proxy

Процесс интеграции

В конфигурационном файле httpd.conf добавим строку загрузки модуля mod_proxy.so

LoadModule proxy_module modules/mod_proxy.so

и в конфигурационном файле ssl.conf в секции прописываем строки

<Location />
    <IfModule mod_proxy.c>
        ProxyPass http://AS-host:AS-port/
        ProxyPassReverse http://AS-host:AS-port/
    </IfModule>
</Location>

As-host и AS-port – DNS-имя и порт хоста, на котором принимает запросы сервер приложений.

Mod_proxy и ApacheTomcat ⅚/7

Для интеграции с ApacheTomcat ⅚/7 в качестве порта AS-port нужно использовать значение 8080. Например,

<Location />
    <IfModule mod_proxy.c>
        ProxyPass http://localhost:8080/
        ProxyPassReverse http://localhost:8080/
    </IfModule>
</Location>

Mod_proxy и IBM Websphere 6.1/7.0

Для интеграции с IBM Websphere 6.1/7.0 в качестве порта AS-port нужно использовать значение 9080. Например,

<Location />
    <IfModule mod_proxy.c>
        ProxyPass http://localhost:9080/
        ProxyPassReverse http://localhost:9080/
    </IfModule>
</Location>

Mod_proxy и Oracle Weblogic 10.3.2

Для интеграции с Oracle Weblogic 10.3.2 в качестве порта AS-port нужно использовать значение 7001. Например,

<Location />
    <IfModule mod_proxy.c>
        ProxyPass http://localhost:7001/
        ProxyPassReverse http://localhost:7001/
    </IfModule>
</Location>

Apache-Tomcat mod_jk connector

Для построения связки между Apache и Tomcat серверами будем использовать Apache Tomcat Connector.

Из хранилища выкачиваем для Apache 2.2 (например, под Linux) mod_jk1.2.28-httpd-2.2.X.so. Копируем его под именем mod_jk.so в APACHE_HOME/modules.

Конфигурирование сервера Apache

Проверяем, что в файле APACHE_HOME/conf/httpd.conf задана директива Include conf.d/*.conf

Создаем конфигурационный файл APACHE_HOME/conf.d/mod_jk.conf со следующим содержимым:

LoadModule jk_module modules/mod_jk.so
JkWorkersFile "conf.d/workers.properties"
# Where to put jk shared memory
JkShmFile "logs/mod_jk.shm"
JkLogFile "logs/mod_jk.log"
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]”

В соответствие директиве JkWorkersFile создаем далее конфигурационный файл APACHE_HOME/conf.d/workers.properties со следующим содержимым:

[channel.socket:localhost:8009]
port=8009
host=localhost
worker=ajp13:localhost:8009

Он описывает параметры AJP-соединения: идентификатор соединения с именем хоста, используемое значение порта и тип соединения. В файле APACHE_HOME/conf.d/ssl.conf настраиваем в секции виртуального хоста:

<VirtualHost _default:443>
 JkMount /* ajp13
 JkLogLevel info
</VirtualHost>

Перезапускаем сервер Apache.

Конфигурирование сервера Tomcat

Согласно содержимому конфигурационного файла APACHE_HOME/conf.d/workers.properties в конфигурационном файле TOMCAT_HOME/conf/server.xml сервера Tomcat проверяем наличие строк

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" enableLookups="false" redirectPort="8443"
protocol="AJP/1.3" />

Перезапускаем сервер Tomcat и заходим на ресурсы сервера TOMCAT по защищенному каналу на порту 443.

Oracle WebLogic WebServer Plug-Ins

Oracle WebLogic WebServer Plug-Ins входит в поставку Oracle WebLogic 10.3.2. После установки Oracle WebLogic 1. Взять из каталога WL_HOME/server/plugin модуль mod_wl_22.so (или mod_wl128_22.so) из подкаталога, соответствующего платформе, на которой установлен web-сервер Apache (например linux/i686). 2. Скопировать его в APACHE_HOME/modules. 3. В конфигурационный файл APACHE httpd.conf прописать загрузку этого модуля: LoadModule weblogic_module modules/mod_wl_22.so 4. Установить проксирование на базе путей (можно указать в секции

<Virtualhost _default_:4433>):
<Location />
 SetHandler weblogic-handler
 WLLogFile /tmp/wl_root_log.log
</Location>
5. Установить глобальные параметры:
<IfModule mod_weblogic.c>
 WebLogicHost localhost
 WebLogicPort 7001
 Debug OFF
 WLLogFile /tmp/wl_global_proxy.log
 #WLTempDir "/tmp/wl"
 DebugConfigInfo On
 KeepAliveEnabled ON
 KeepAliveSecs 15
</IfModule>
После проделанных действий можно использовать доступ к серверу Weblogic по порту 4433.

IBM WebSphere 7.0 WebServer Plug-Ins

Далее описывается поцесс настройки Apache 2.2 WebServer Plug-Ins для WebSphere 7.0. Установка плагина производится штатным образом согласно документации с дополнительного установочного диска.

После установки плагина нужно проверить в файле httpd.conf наличие следующих строк для Linux или Solaris х32 LoadModule was_ap22_module /opt/IBM/WebSphere/Plugins/bin/mod_was_ap22_http.so WebSpherePluginConfig /opt/IBM/WebSphere/Plugins/config/webserver_ap22/plugin-cfg.xml

айл plugin-cfg.xml генерируется в процессе установки или через консоль управления сервером (https://servername:9043/ibm/console/logon.jsp) после внесения различных изменений в конфигурацию сервера приложений. По умолчанию в результате этой настройки по портам 80 (для http) и 443 (для https) запросы будут транслироваться от Apache-сервера на сервер приложений.

Для конфигурирования https-протокола на нестандартный порт, например, 4433 требуется проделать следующие действия, которые описаны для варианта размещения сервера приложений и apache-сервера на одном хосте.

  • Зарегистрироваться в консоли управления сервером.

  • В пункте «Среда» выбрать «Виртуальные хосты».

  • В списке виртуальных хостов выбрать, например, «default_host».

  • В «Дополнительных свойствах» выбрать «Псевдонимы хоста».

  • Выбрав пункт «Создать», в поле «Имя хоста» внести DNS-имя хоста, в поле «Порт» указать значение 4433 и нажать «Ок».

  • Далее требуется сохранить конфигурацию.

  • После определения виртуального хоста требуется в пункте «Среда» выбрать «Обновить глобальную конфигурацию модуля Webсервера» и затем нажать кнопку «Ок».

  • Далее в пункте «Среда» выбрать «Серверы» - «Типы серверов» - «Web-серверы».

  • В поле «Выбрать» напротив требуемого сервера выставить галочку.

  • Последовательно выбрать пункты «Сгенерировать модуль» и «Распространить модуль».

Перезапустить сервер приложений. В конфигурационном файле ssl.conf apache-сервера нужно проверить наличие строк

Listen 4433
<Virtualhost [DNS-имя хоста|_default_]:4433>
</Virtualhost>

Перезапустить apache-сервер. После проделанных действий будут доступны развернутые приложения на виртуальном сервере default_host по защищенному каналу на порту 4433.

Для повышения удобства работы и хранения данных веб-сайт TRUSTED.RU использует файлы COOKIE. Продолжая работу с веб-сайтом, Вы даете свое согласие на работу с этими файлами.