ほっしーの技術ネタ備忘録

技術ネタの備忘録です。基本的に私が忘れないためのものです。他の人の役にも立つといいなぁ。

tomcat をバージョンアップしたら AJP でつながらなくなった話

もう結構前の話ですが、備忘録に残しておかないといけない気がしたので。

ある日、tomcat を更新しました。それまで動いていた jsp とかが動かなくなったので、
泣きながら調べてみました。

どっかのバージョンから、tomcat の方で AJP で接続するためには、
secret という秘密の文字列が必要となり、それがないと拒絶されるようになったみたいです。

設定の仕方は conf/server.xml を以下のように修正します。

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" secret="秘密の文字列" />

ポート 8009 の AJP 接続のコネクタの設定で、secret 属性を追加します。
この文字列は適当に乱数で生成すればいいかなと思います。

で、Apache の mod_ajp の方でも同じ文字列を設定します。

ProxyPass ajp://tomcat.example.com:8009/ secret=同じ文字列を書く

これで、Apache の方からこの secret を使って接続するようになるので、
無事に認証が通るようになります。

なんでもセキュリティ面での脆弱性があってその対応らしい?
Changelog はちゃんと読みましょう。

参考:http://labo-blog.aegif.jp/2020/05/tomcat9webapacheajp.html