Aké je nastavenie redirectPort v server.xml Tomcat?


Dátum vydania:2. januára 2021.



INFOMARTION > Aké je nastavenie redirectPort v server.xml Tomcat?

Prehľad.

Keď som sa pozrel na nastavenie portu v konfigurácii server.xml Tomcatu, bolo tam nastavenie s názvom "redirectPort", ale keď som ho vygooglil, nemohol som zistiť, čo je to za nastavenie, tak som ho vyhľadal.

Nasledujúce nastavenia.

server.xml


    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

Obsah

  1. Čo je redirectPort?
  2. zhrnutie

1. Čo je redirectPort?

Ako sa ukázalo, zdá sa, že ide o nastavenie, ktoré vás presmeruje pri prístupe na stránku, na ktorej je uvedené, že sa vyžaduje protokol SSL.

Ak boli hodnoty konfigurácie server.xml

server.xml


    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

Ak sa pristupuje na adresu URL "http://hoge:8080/hoge.html", zobrazí sa presmerovanie používateľa na adresu URL "https://hoge:8443/hoge.html".

Skutočnosť, že protokol SSL je povinný, musí byť definovaná v súbore web.xml.(「<transport-guarantee>CONFIDENTIAL</transport-guarantee>」)Pri nastavení je protokol SSL povinný. Do súboru web.xml uveďte nasledujúce informácie.

web.xml


~skrátenie~
    <security-constraint>
      <web-resource-collection>
        <web-resource-name>twx-portal</web-resource-name>
        <url-pattern>/*</url-pattern>
      </web-resource-collection>
      <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
      </user-data-constraint>
    </security-constraint>

</web-app>

Keďže vzor url je "/", toto nastavenie spôsobí, že všetky adresy URL budú vyžadovať SSL a presmerovanie. Ak protokol SSL nie je špecifikovaný ako povinný, ide o konfiguračnú hodnotu, ktorá sa nepoužíva. Hoci je v predvolenej hodnote Tomcatu nastavené "redirectPort="8443", zdá sa, že samotné nastavenie na aktiváciu portu 8443 je pri predvolenej hodnote Tomcatu neplatné, takže môže existovať veľa ľudí, pre ktorých je "redirectPort="8443"" nastavené bez vedomia, ale Myslím, že existuje veľa ľudí, pre ktorých nie je aktivovaný port 8443 cieľa presmerovania.

1-1. základ

Chceli by sme opísať, na základe čoho sme dospeli k uvedeným záverom. Na stránke Tomcat sa uvádza nasledovné.

http://tomcat.apache.org/tomcat-9.0-doc/ssl-howto.html

「If you change the port number here, you should also change the value specified for the redirectPort attribute on the non-SSL connector. This allows Tomcat to automatically redirect users who attempt to access a page with a security constraint specifying that SSL is required, as required by the Servlet Specification.」

Ide o "prístup k stránke s bezpečnostnými obmedzeniami, ktoré určujú, že sa vyžaduje protokol SSL, ako to vyžaduje špecifikácia servletov". Toto je nastavenie web.xml, ktoré ste práve nakonfigurovali. Ide o to, že požiadavka SSL je špecifikáciou servletov a zdá sa, že pri jej uplatnení sa presmeruje.

2. zhrnutie

Táto časť opisuje nastavenia redirectPort v súbore server.xml aplikácie Tomcat. Pozrite sa na to pri nastavovaní portu redirectPort.

Ďakujeme vám za sledovanie až do konca.