【Tomcat】Tomcat の使用ポート

Tomcat の使用ポート

`用途`Default ON/OFFDefault Port No
HTTP通信ON8080
HTTPS(SSL)通信OFF8443
Tomcat停止(Shutdown用)ON8005
AJPON8009

■ server.xml

* 関連部分のみ抜粋
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
  <Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <!--
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />
    -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

  </Service>
</Server>

AJP

 * Apache Jserv Protocol
 * ApacheからTomcatに対して接続を行う場合に使用

Tomcat停止(Shutdown用)について

 * TCP/IP経由でshutdownポートからこの文字列を受け取ると、Tomcatは停止

セキュリティ上の問題

 * shutdownポートにデフォルトの場合はtelnetで接続して「SHUTDOWN」と
   文字列を打ち込むことでTomcatを停止できてしまう

対策

http://www.atmarkit.co.jp/ait/articles/0801/28/news127_4.html
が参考になる。
遠隔でTomcatを停止する必要がない場合
 => shutdownポート自体を利用させなくする
shutdownポートをふさぐ方法
http://tomcat.apache.org/tomcat-8.0-doc/config/server.html
より、抜粋。

The TCP/IP port number on which this server waits for a shutdown command.
Set to -1 to disable the shutdown port. <<< ★注目★

Note:
Disabling the shutdown port works well when Tomcat is started using Apache Commons Daemon
(running as a service on Windows or with jsvc on un*xes).
It cannot be used when running Tomcat with the standard shell scripts though,
 as it will prevent shutdown.bat|.sh and catalina.bat|.sh
 from stopping it gracefully.

結局、、、
 * server.xml のshutdownポートを「-1」にする。
   =>「<Server port="-1" shutdown="SHUTDOWN">」
【注意】
 * Eclipse-Tomcat上で自作モジュールを動かした場合、エラーで動かくなる。
   詳細は下記の関連記事の
  『「The server cannot be started because one or more of the ports are invalid」が表示される』
   を参照のこと。
http://blogs.yahoo.co.jp/dk521123/33614513.html

■ redirectPortについて

 * デフォルトは、8443で、デフォルトのSSLポートと同じ
 * non-SSL通信時でもweb.xmlのアクセス制限(<security-constraint>)で、
   SSL通信を要求する事があるが、この場合のポート番号を指定する

SSLポートとの関係

http://www.jajakarta.org/tomcat/tomcat5.0/ja/docs/tomcat-docs/ssl-howto.html
より、抜粋。
~~~
ここでポート番号を変更する場合、非SSLコネクタ上のredirectPort属性の設定値も
変更すべきです。
これによってTomcatは、 サーブレット2.4仕様で要求されているように、
SSLを要するセキュリティ制約の指定を含んだページへアクセスしようとする
ユーザを自動的にリダイレクトできるようになります。
~~~
# デフォルトは、SSLポートと同じなのか。。。

 * よって、SSLポートを変更した場合、redirectPortも変更しといた方がいい

参考文献

http://wall-climb.com/2009/05/21/tomcat%E3%81%AEsslnon-ssl%E9%80%9A%E4%BF%A1%E6%99%82%E3%81%AE%E3%83%AA%E3%83%80%E3%82%A4%E3%83%AC%E3%82%AF%E3%83%88/