TomcatのredirectPortとは?HTTPS転送が働く条件
掲載日:
更新日:
INFORMATION > TomcatのredirectPortとは?HTTPS転送が働く条件
結論:redirectPortは、対象リクエストがWebアプリケーションのsecurity-constraintで機密通信を要求した場合に、SSL Connectorのポートへ転送するための設定です。
この記事の対象と位置付け:server.xmlにある8080 ConnectorのredirectPort="8443"が、いつ使われる値なのか知りたい方向けです。
2026年時点の注意:redirectPortを設定しただけで全HTTPアクセスがHTTPS化されるわけではありません。対応するSSL ConnectorとWebアプリ側の制約が必要です。公開環境では前段プロキシのHTTPSリダイレクトを含め、構成全体で確認してください。
公式情報:Tomcat 9 HTTP ConnectorのredirectPort、Tomcat 9のSSL/TLS設定
概要
Tomcatのserver.xmlの設定でポートの設定を見たときに「redirectPort」という設定があったが、ググってもこの設定が何の設定か分からなかったので調べて見ました。
以下の設定です。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
目次
1. redirectPort(リダイレクトポート)とは
結論から言うとSSLが必須であることを指定するページにアクセスする時にリダイレクトしてくれる設定の様です。
仮にserver.xmlの設定値が以下だった場合
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
URL「http://hoge:8080/hoge.html」にアクセスした場合、「https://hoge:8443/hoge.html」でアクセスするようにリダイレクトさせるようです。
SSLが必須であることは「web.xml」で定義が必要です。「<transport-guarantee>CONFIDENTIAL</transport-guarantee>」を設定するとSSLが必須となります。web.xmlに以下の様な情報を記載します。
~省略~
<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>
url-patternが「/」なのでこの設定により、全URLがSSL必須となり、リダイレクトされます。SSLが必須であることを指定しない場合は使われない設定値となります。Tomcatのデフォルト値で「redirectPort="8443"」は設定されていますが、8443ポート自体を起動する設定がTomcatのデフォルト値だと無効となっている様なので、意識せずに「redirectPort="8443"」は設定されているがリダイレクト先の8443ポートが起動していない人も多いのではないかと思います。
1-1. 根拠
上記結論の根拠について記載したいと思います。Tomcatのページに以下の様に記載されています。
https://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.」
直訳すると「ここでポート番号を変更した場合、非SSLコネクタ上のredirectPort属性に指定した値も変更する必要があります。これにより、サーブレット仕様で要求されているように、SSLが必要であることを指定したセキュリティ制約のあるページにアクセスしようとしたユーザーを、Tomcatが自動的にリダイレクトすることができます。」
ポイントは「サーブレット仕様で要求されているように、SSLが必要であることを指定したセキュリティ制約のあるページにアクセス」です。こちらが先ほど設定したweb.xmlの設定となります。要はSSLの必須はサーブレットの仕様で、それが適用されている時にリダイレクトされる様です。
ちなみにウィキペディアでも言及されている様に8443ポートはTomcatのSSL用のポートです。
IANA公式 Service Name and Transport Protocol Port Number Registry
↓ウィキペディアのウェルノウンポート番号に書いてあります。
8443 TCP SW Soft Plesk Control Panel, Apache Tomcat SSL, Promise WebPAM SSL, McAfee ePolicy Orchestrator (ePO)
2. まとめ
Tomcatのserver.xmlに記載するredirectPort(リダイレクトポート)の設定について記載いたしました。redirectPortを設定する際に参考にしてみてください。
最後までご覧いただきありがとうございました。