Tomcat > TomcatのManagerアプリへのアクセス

更新日 2021-01-13
広告

TomcatはデフォルトでManagerアプリが用意されています。 Managerアプリを使うと、ブラウザからTomcatの状態を確認できます。

Tomcat 8.5

Tomcat8.5からは、Managerアプリは、ローカルホスト(Tomcatが動いているサーバと同じホスト)からのアクセスしか受け付けない設定になっています。 セキュリティの観点では、この設定がいいのですが、開発/試験中だと、別のホストからアクセスできたほうが便利だったりします。 以下、別ホストからアクセスする方法を説明します。

tomcat/webapps/manager/META-INF/context.xmlを修正しています。 最初は以下のようになっています。

<Context antiResourceLocking="false" privileged="true" >
   <Valve className="org.apache.catalina.valves.RemoteAddrValve"
          allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
   <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
 </Context>
RemoteAddrValueの部分をコメントアウトします。
<Context antiResourceLocking="false" privileged="true" >
<!--
   <Valve className="org.apache.catalina.valves.RemoteAddrValve"
          allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
   <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
 </Context>
そして、tomcat/conf/tomcat-users.xmlに、以下の設定を追記する。
<role rolename="manager-gui"/>
<user username="hoge" password="hoge" roles="manager-gui"/>

これで、Tomcatを再起動すれば、リモートホストからmanagerアプリにアクセスできるようになります。

たとえば、「http://TomcatサーバのIPアドレス:8080/manager/text/sslConnectorCiphers」にアクセスすれば、Tomcatがサポートしているcipher suite (暗号化と署名アルゴリズム)の情報を表示してくれたりします。開発・テスト時に便利です。

広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system