Tomcat 9.0系に脆弱性が見つかったためマイナーバージョンアップをしました。Tomcatを動かしている環境は Amazon Linux 2023 です。Tomcatのバージョンは 9.0.89 から 9.0.106にあげました。
Tomcatのダウンロードサイトからtarファイルを取得します。
絵
ダウンロードしたファイルは apache-tomcat-9.0.106.tar.gz というファイル名でした。
ハッシュ値を確認しておきます。ダウンロードサイトにあるsha512のリンクをクリックして表示された文字列をメモしておきます。以下のコマンドで文字列が一致するか確認をします。
$ sha512sum apache-tomcat-9.0.106.tar.gz
一致すればダウンロード時の破損はありません。ダウンロードしたファイルを Amazon Linux 2023 のTomcatを配置するディレクトリに持っていきます。
ここで、Tomcatのマイナーバージョンアップでやることを先に書いておきます。
- 新しいTomcatを解凍して配置する。
- 古いTomcatにあるWebアプリケーションのフォルダを新しいTomcatにコピーする。
- 新しいTomcatの不要なWebアプリケーションのフォルダを削除する。
- 新しいTomcatのconfファイル(server.xml)を修正する。
このような感じです。
新しいTomcatを解凍します。
$ tar xf apache-tomcat-9.0.106.tar.gz
解凍すると apache-tomcat-9.0.106 というフォルダができます。フォルダは任意の名前に変更しても構いません。解凍に使用したtarファイルは不要なので削除します。
古いTomcatにあるWebアプリケーションフォルダをアーカイブします。WebアプリケーションフォルダはTomcatの webapps 配下のものです。古いTomcatの webapps 配下まで移動してから tarコマンドを実行します。
$ tar cf tool.tar tool
tool.tar がアーカイブファイル名、tool が移行するWebアプリケーションフォルダです。アーカイブした tool.tar ファイルを新しいTomcatの webapps 配下に持っていき展開します。
$ tar xf tool.tar
展開をしたら tool.tar ファイルは不要ですので削除します。新しいTomcatにはデフォルトで ROOT、docs、examples、host-manager、manager のアプリケーションフォルダがありますので、こちらも削除をします。削除は必要に応じて判断してください。
最後にTomcatのコンフィグファイルを修正します。コンフィグファイルの修正内容は環境によって変わるかと思います。コンフィグファイルは conf 配下にあります。僕の場合は server.xml の修正をしました。古いTomcatのserver.xml を新しいTomcatに持っていっても使えるような気はしますが、新しいTomcat側で編集をしました。
$ vi server.xml
編集内容はポートの変更です(ポートを8080から8000に変更)。
<Connector port="8000" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxParameterCount="1000" />
ここまで出来たら新しいTomcatを起動させます。bin フォルダ配下のシェルを実行します。
$ ./startup.sh
ウェブブラウザからアクセスしてウェブアプリケーションが動けば終わりです。