У меня есть сервер, на котором выполняется несколько веб-приложений на виртуальных хостах Tomcat (site1.domain.com, site2.domain.com) и т. Д. Работает на портах 8080 и 8443 для ssl. Настройки по умолчанию.
Существует также интерфейс Apache2 для Tomcat с отдельными веб-сайтами для каждого сайта tomcat, настроенными для связи через соединитель ajp.
Проблема в том, что я не могу заставить ssl работать со стороны Apache, и вопрос в том, какой из серверов вообще должен обрабатывать https?
Хорошо разобрался.
Для 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
Теперь я сам отвечаю на свой вопрос - SSL должен обрабатываться Apache, если вы используете Tomcat (7)