Возникли проблемы с перенаправлением HTTP на HTTPS при работе с Tomcat 7 - PullRequest
0 голосов
/ 11 марта 2020

Я пытаюсь настроить перенаправление 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.

. Любая помощь по этому вопросу будет принята с благодарностью.

...