Введите имя домена:
.ua .com.ua .in.ua .org.ua
.ru .com .net .org
Показать все домены

Шифрование соединений Tomcat 8 на Apache

Ответы на вопросы от компании «Украинский хостинг».

Шифрование соединений Tomcat 8 на Apache

Apache Tomcat является сервером приложений, используемым для обслуживания приложений Java.

Данная инструкция поможет защитить сервер Tomcat 8 с помощью SSL.

Перед выполнением инструкции необходимо предварительно установить на сервере веб-сервер Apache и сервер Tomcat 8.

Рекомендуется создать не root пользователя с доступом к sudo.

В инструкции используется текстовый редактор nano, для установки которого требуется выполнить команду:

yum install nano

Процедура шифрования соединений Tomcat 8 на Apache выглядит таким образом:

  1. Устанавливаем GCC (для компиляции коннектора) и файлы разработки веб-сервера Apache:

    sudo yum install gcc httpd-devel
  2. Переходим в папку tmp:

    cd /tmp

    Загружаем архив с исходным кодом коннектора:

    curl -LO http://mirrors.ibiblio.org/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.42-src.tar.gz
  3. Извлекаем архив в текущий каталог:

    tar xzvf tomcat-connectors*
  4. Переходим в каталог native:

    cd tomcat-connectors*/native

    Указываем расположение инструмента apxs, помогающего настроить код:

    ./configure —with-apxs=/usr/bin/apxs
  5. Собираем модуль:

    make
  6. Устанавливаем модуль:

    sudo make install
  7. Для настройки поддержки модуля mod_jk и взаимодействия Apache с Tomcat, открываем файл jk.conf:

    sudo nano /etc/httpd/conf.d/jk.conf

    и вставляем в него следующий код:

    LoadModule jk_module modules/mod_jk.so
    JkLogFile logs/mod_jk.log
    JkLogLevel info
    JkShmFile logs/mod_jk.shm
    JkWorkersFile conf/workers.properties

    Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.

  8. Создаем файл свойств рабочего процесса

    sudo nano /etc/httpd/conf/workers.properties

    и для создания подключения к Tomcat на порте 8009 вставляем в файл следующий код:

    worker.list=worker1
    worker.worker1.type=ajp13
    worker.worker1.host=127.0.0.1
    worker.worker1.port=8009

    Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.

  9. Открываем виртуальный хост:

    sudo nano /etc/httpd/conf.d/ssl.conf

    и чтобы передать весь трафик этого виртуального хоста ранее настроенному рабочему процессу, добавляем в раздел директиву:

    JkMount /* worker1

    Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.

  10. Проверяем настройки:

    sudo apachectl configtest

    Видим ответ Syntax OK, означающий, что ошибок в конфигурациях нет.

  11. Перезагружаем Apache:

    sudo systemctl restart httpd

    Теперь сервер Tomcat доступен в браузере по SSL.

    Чтобы в этом убедиться, открываем адрес (вместо 93.190.42.52 необходимо указать IP адрес собственного сервера):

    https://93.190.42.52/
  12. Чтобы все запросы Tomcat проходили через прокси-сервер, нужно настроить Tomcat для прослушивания соединений только на локальном кольцевом интерфейсе.

    Открываемфайл server.xml:

    sudo nano /opt/tomcat/conf/server.xml

    и меняем строки:

    <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />

    на строки:

    <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   address="127.0.0.1"
                   redirectPort="8443" />

    а так же меняем строку:

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    на строку:

    <Connector port="8009" address="127.0.0.1" protocol="AJP/1.3" redirectPort="8443" />

    Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.

  13. Перезапускаем Tomcat:

    sudo systemctl restart tomcat

    Теперь соединения сервера Tomcat шифруются по SSL с помощью прокси-сервера.

См.также: