Назад | Перейти на главную страницу

Apache2 и Tomcat7 с proxy_ajp SSL

У меня есть сервер, на котором выполняется несколько веб-приложений на виртуальных хостах Tomcat (site1.domain.com, site2.domain.com) и т. Д. Работает на портах 8080 и 8443 для ssl. Настройки по умолчанию.

Существует также интерфейс Apache2 для Tomcat с отдельными веб-сайтами для каждого сайта tomcat, настроенными для связи через соединитель ajp.

Проблема в том, что я не могу заставить ssl работать со стороны Apache, и вопрос в том, какой из серверов вообще должен обрабатывать https?

Хорошо разобрался.

  1. Создайте две записи DNS, которые указывают на IP-адрес вашего сервера Tomcat. (site1.domain.int, site2.domain.int)
  2. Создайте два виртуальных хоста в tomcat. Протестируйте их - поместите в них приложение / manager [скопируйте из значения по умолчанию и отредактируйте пути xml appBase соответственно], чтобы проверить их правильную работу (через порт 8080, чтобы убедиться, что это действительно кот, который обрабатывает http)
  3. Настройте сервер apache и создайте виртуальные хосты в соответствии с пунктом 1. 3.1. Создайте собственный ssl (.pem) с помощью make-ssl-cert (в Linux)

Для HTTP и HTTPS каждый хост apache должен выглядеть одинаково:

<VirtualHost *:80>
ServerName server.domain.int
ServerAlias server
#Redirect / https://server.domain.com
ProxyRequests Off
<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>

ProxyPass / ajp://server.domain.int:8009/
ProxyPassReverse / http://server.domain.int

<Location />
    Order allow,deny
    Allow from all
</Location>

ServerAdmin веб-мастер @ localhost ServerName server.domain.int

    SSLEngine on
    SSLCertificateFile    /etc/apache2/ssl/apache.pem

ProxyRequests Off
<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>

ProxyPass / ajp://server.domain.int:8009/
 ProxyPassReverse / https://server.domain.int

<Location />
    Order allow,deny
    Allow from all
</Location>

Ключ к пониманию этого - знать, что HTTPS происходит только между клиентом и apache. Apache взаимодействует с tomcat по протоколу ajp (не http, не https). 4. Тестовые адреса site1.domain.int и site2.domain.int (на этот раз через порт 80!) 4.1 Тестовые адреса с https: // perfix

  1. В целях безопасности закройте порты tomcat 8080 и 8443 в server.xml.

Теперь я сам отвечаю на свой вопрос - SSL должен обрабатываться Apache, если вы используете Tomcat (7)