пятница, 15 июля 2011 г.

apache mod_wl mod_ssl

В блогах стало появляться много постов об обеспечении безопасности серверов Weblogic. Напишу и я что-нибудь.
Задача - обеспечение шифрование трафика между пользователем находящимся за пределами внутренней сети и приложением. Сервера приложений находятся за балансировщиком нагрузки, реализованном на Apache 2.2. Шифроваться будет только трафик между Apache и конечным пользователем.

Для начала можно организовать вот такую структуру


1. Получение SSL сертификата
Сертификат можно купить или сгенерировать самоподписанный.
Для экспериментов можно сгенерировать с помощью пакета openssl.
openssl req -new -x509 -nodes -out server.crt -keyout server.key

После ответа на несколько вопросов получаем 2 файла.
server.key - ключ для сервера.
server.crt - сертификат, в котором хранится открытый ключ и информация о владельце сертификата. Сертификаты сразу можно разложить в те места, где их сможет найти Apache.
/etc/apache2/ssl.crt/server.crt
/etc/apache2/ssl.key/server.key
2. Настройка Apache
Я использую SUSE Linux 11. Для других дистрибутивов расположение файлов будет отличаться.
  • Необходимо скопировать файл  mod_wl_22.so в директорию с модулями.
/usr/lib64/apache2-prefork
  • Подгружаем mod_wl_22
echo 'LoadModule weblogic_module /usr/lib64/apache2-prefork/mod_wl_22.so' >> /etc/apache2/loadmodule.conf
  • Включаем поддержку SSL в файле /etc/sysconfig/apache2

APACHE_SERVER_FLAGS="SSL"
  • Конфиг для виртуального хоста. Добавляем к файлу /etc/apache2/vhosts.d/vhost.conf
<IfDefine SSL>
<IfDefine !NOSSL>
<VirtualHost *:443>
ServerName LoadBalancer.ru
RewriteEngine On
<Location /myApp>
SetHandler weblogic-handler WebLogicCluster srv1.ru:8001,srv2.ru:8002
</Location>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl.crt/server.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/server.key
</VirtualHost>
</IfDefine>
</IfDefine>
  • Можно рестартовать апач. Готово.
/etc/init.d/apache2 restart

Комментариев нет:

Отправить комментарий