TomcatのWebアプリケーションマネージャ(manager)の設定変更方法

TomcatのWebアプリケーションマネージャ(manager)の設定変更方法

TomcatのWebアプリケーションマネージャ(Manager)を設定する方法について説明します。
TomcatのManagerは、Webアプリケーションのデプロイ、管理、削除を行うためのウェブベースのツールです。
この設定には、セキュリティの観点から、ユーザー認証の設定が含まれます。

1. Managerアプリケーションの確認
Tomcatには、デフォルトでManagerアプリケーションが含まれています。
通常、$CATALINA_HOME/webapps/manager ディレクトリに配置されています。
これにアクセスするには、ブラウザで http://localhost:8080/manager/html を開きます。

2. tomcat-users.xml の編集
Managerアプリケーションへのアクセスを制限するには、Tomcatの設定ファイルである tomcat-users.xml を編集します。
このファイルは、Tomcatの conf ディレクトリにあります。

<tomcat-users>
  <!-- Manager web application roles -->
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>

  <!-- Users with roles for the manager application -->
  <user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
  <user username="deployer" password="deployer" roles="manager-script"/>
</tomcat-users>

上記の設定では、admin ユーザーがすべてのManager機能にアクセスできるようになっており、deployer ユーザーはスクリプト機能にアクセスできるようになっています。
username と password の値は、セキュリティを考慮して変更することをお勧めします。

3. アクセス制限の設定
Managerアプリケーションには、セキュリティを強化するためにアクセス制限を追加することができます。
これには、WEB-INF/web.xml に設定を追加する方法があります。
これにより、特定のIPアドレスやネットワークからのみアクセスを許可することができます。

例:

<web-app>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Manager</web-resource-name>
      <url-pattern>/manager/html</url-pattern>
      <url-pattern>/manager/status</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      <role-name>manager-gui</role-name>
    </auth-constraint>
  </security-constraint>
  <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>Manager Realm</realm-name>
  </login-config>
</web-app>

4. Tomcatの再起動
設定を変更した後は、Tomcatを再起動して変更を反映させる必要があります。
Tomcatの再起動は、次のコマンドで行います。

$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh

5. 設定の確認
Tomcatを再起動した後、ブラウザで http://localhost:8080/manager/html にアクセスし、新しく設定したユーザー名とパスワードでログインして、設定が正しく適用されているか確認します。

以上で、TomcatのManagerアプリケーションの設定変更が完了します。
セキュリティに関しては特に注意が必要であり、実際の運用環境ではさらに厳密なアクセス制御を行うことが推奨されます。