Меня попросили обновить сервер с Apache и Tomcat-6 на Debian Wheezy с HTTP на HTTPS. Я успешно получил и установил SSL-сертификаты в части Apache и проверил, что они работают (используя две разные проверки SSL).
Затем я добавил следующий блок в /etc/apache2/sites-available/default-ssl
:
<VirtualHost *:80>
ServerName server.name
Redirect permanent / https://server.name/
</VirtualHost>
и это до конца <VirtualHost _default_:443>
блок в том же файле:
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
На стороне Tomcat /etc/tomcat6/server.xml
файл включает два активных коннектора:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
<Connector address="127.0.0.1" port="8009" protocol="AJP/1.3" redirectPort="8443" />
Теперь, когда я иду в https://server.name/app/main/login.jspx
, Я получаю SSL-соединение, но оно пропадает после входа в систему.
Если я пойду в https://server.name/app
, Меня сразу перенаправят на http://server.name/app/main/login.jspx
(без SSL).
(И если я пойду просто https://server.name/
, Я попадаю на страницу перенаправления, определенную в /var/lib/tomcat6/webapps/ROOT/index.html
.)
Что я делаю не так? Нужно ли мне вместо этого использовать прокси AJP?
Если этот коннектор используется в конфигурации прокси, настройте proxyName
, proxyPort
.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443"
scheme="https"
proxyName="server.name"
proxyPort="443"
secure="true" />
Вам также нужно будет установить scheme
и secure
атрибуты к значениям https
и true
соответственно для прокси https.
Для перенаправления http на https на сервере apache попробуйте добавить директивы в конфигурацию по умолчанию /etc/apache2/sites-available/000-default.conf
.