Настройка в Tomcat редиректа с http на https

Настройка редиректа с http на https может понадобиться в случае, если сервера Юниверс MDM изолированы, и открыт только порт 443 (стандартный для https). При такой конфигурации Tomcat не может принимать http-запросы.

Ниже приведен пример конфигурации, в котором в server.xml открывается порт 80 (стандартный для http) с редиректом на 443, а в настройках web.xml добавляется конфигурация, чтобы любой запрос обрабатывался как CONFIDENTIAL. При такой настройке любой запрос к backend будет переадресован на 443 порт с https.

Добавьте коннекторы в файл server.xml:

<Connector port="80" protocol="HTTP/1.1"
          connectionTimeout="20000" redirectPort="443"/>

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
          maxThreads="150" scheme="https" secure="true" SSLEnabled="true" >
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="${path_to_keystore}"
                    certificateKeystorePassword="${keystore_password}"
                    type="RSA" />
    </SSLHostConfig>
</Connector>

Добавьте в конец файла web.xml секцию:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Universe Backend</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

Добавьте в файл docker-compose.yaml новые пути в секцию volumes. Эти пути позволяют подложить файлы server.xml и web.xml в Tomcat:

volumes:
  - ${BACKEND_INTEGRATION:-./universe-integration}:/usr/local/tomcat/universe-integration
  - PATH_TO_MODIFIED_SERVER.xml/server.xml:/usr/local/tomcat/conf/server.xml
  - PATH_TO_MODIFIED_WEB.xml/web.xml:/usr/local/tomcat/conf/web.xml