Я пытаюсь настроить перенаправление HTTP (8080) на HTTPS (8443) на Tomcat 7, работающем на Windows 2012 R2 Server. Tomcat используется проприетарным приложением, которое в настоящее время нормально работает на порту 8080. В папке \ webapps \ ROOT есть файл индекса. jsp, который содержит следующее:
<% response.sendRedirect("/application/directory/login.html"); %>
Приведенный выше файл и код прекрасно работают при перенаправлении http://fqdn:8080
запросов на базовый путь приложения по умолчанию.
После некоторых исследований я создал файл хранилища ключей с нашим самозаверяющим сертификатом для использования с подключением HTTPS. , Затем я добавил приведенный ниже код в конец веб-файла. xml файл чуть выше записи </web-app>
;
<!-- added for HTTP to HTTPS redirect -->
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected Context</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<!-- auth-constraint goes here if you requre authentication -->
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
Я изменил приведенный ниже соединитель на сервере. xml file;
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
enableLookups="false"
redirectPort="8443"
URIEncoding="UTF-8"
maxThreads="550"
maxHttpHeaderSize="8192"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/plain,text/css, text/javascript, application/x-javascript,
application/javascript, application/xml, application/extjson, x-font/otf, application/x-font-woff, x-font/ttf, x-font/eot" />
Затем я добавил указанный ниже соединитель на сервер. xml file;
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443"
connectionTimeout="20000"
URIEncoding="UTF-8"
maxThreads="550"
scheme="https"
secure="true"
SSLEnabled="true"
keystoreFile=REDACTED
keystorePass=REDACTED
clientAuth="false"
sslProtocol="TLS"
maxHttpHeaderSize="8192"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/plain,text/css, text/javascript, application/x-javascript,
application/javascript, application/xml, application/extjson, x-font/otf, application/x-font-woff, x-font/ttf, x-font/eot" />
Если я введу http://fqdn:8080
в браузере, он успешно перенаправляется на https://fqdn:8443/application/directory/login.html
. Если я введу https://fqdn:8443
, он отобразит https://fqdn:8443/application/directory/login.html
, как и ожидалось. Если я введу что-либо после fqdn и порта, например, http://fqdn:8080/application/directory/login.html
, оно останется на http://fqdn:8080/application/directory/login.html
и никогда не будет перенаправлено на версию https://fqdn:8443
. Я попытался отключить индекс. jsp файл перенаправления, и он больше не будет перенаправлять запись с http://fqdn:8080
на https://fqdn:8443/application/directory/login.html
.
. Любая помощь по этому вопросу будет принята с благодарностью.