Задача - обеспечение шифрование трафика между пользователем находящимся за пределами внутренней сети и приложением. Сервера приложений находятся за балансировщиком нагрузки, реализованном на 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
Комментариев нет:
Отправить комментарий