tomcat 7: автоматическое перенаправление https-запросов на порт 8443
на tomcat7 наше веб-приложение работает через https через порт 8443
и отлично работает, за исключением того, что мы не можем перенаправить порт https по умолчанию (443
) к 8443
поэтому, как следствие,": 8443 " должен быть включен в URL-адрес всякий раз, когда мы должны получить доступ к приложению.
Я включаю некоторые части нашего сервера.XML-файл. Что нужно сделать,чтобы иметь возможность загружать наши страницы без необходимости вводить информацию о порте в URL?
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
enableLookups="false"
redirectPort="8443" />
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
enableLookups="false"
redirectPort="8443" />
<Connector port="443" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
enableLookups="false"
redirectPort="8443" />
...
<Connector port="8443"
maxHttpHeaderSize="65536"
scheme="https"
secure="true"
SSLEnabled="true"
clientAuth="false"
enableLookups="true"
acceptCount="100"
disableUploadTimeout="true"
maxThreads="200"
sslProtocol="TLS"
keystoreFile="/toto/has/a/certificate.jks"
keystorePass="totohasapassword"
protocol="org.apache.coyote.http11.Http11NioProtocol" />
1 ответов
Я нашел простое решение на coderanch с помощью iptables:http://coderanch.com/t/601907/Tomcat/SSL-work
вот строка для ввода:
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443
новый изменить
вот мой полный ответ сейчас. У нас была проблема с предыдущим ответом, так как при вызове url из http перенаправление было в порядке, но всегда добавляло": 8443 " в конце, что было не очень приятно.
Итак, с точки зрения iptable, вот что мы написал:
sudo iptables -t nat -I PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 8080
sudo iptables -t nat -A OUTPUT -p tcp -d <your_ip_address>,<your_ip_address> --dport 80 -j REDIRECT --to-port 8080
sudo iptables -t nat -I PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-ports 8443
Теперь также важно добавить перенаправления в файл Tomcat conf сервер.в XML:
<Connector port="8080"
enableLookups="false"
redirectPort="443" />
<Connector port="443" protocol="HTTP/1.1"
enableLookups="false"
redirectPort="8443" />
вот и все, перезагрузите tomcat, и все должно работать. Я не эксперт в конфигурациях iptable, поэтому, пожалуйста, проверьте с помощью sysadmins перед изменением любой существующей конфигурации в производстве.