サイオステクノロジーの服部です。
今回はShibboleth IdPを構築する際にJettyのバージョン情報を隠す方法をまとめます。
今回想定する環境は、学認から提供されている以下の技術ガイドに従ってShibboleth IdPを構築した環境を想定しています。
https://meatwiki.nii.ac.jp/confluence/pages/viewpage.action?pageId=20021624
ガイドに従って構築したIdPにアクセスすると、応答ヘッダーの"Server"にJettyのバージョン情報が含まれています。

また、存在しないパスにアクセスするとエラーページが表示されますが、こちらにもJettyのバージョン情報が表示されてしまいます。

Jettyにはバージョン情報を表示するか制御するオプションとして”jetty.httpConfig.sendServerVersion“が存在します。起動時にこちらのオプションを”false"にすることでバージョン情報の表示が無効となります。オプションの設定方法はjettyのサービスの環境変数を指定している、"/etc/sysconfig/jetty"に以下を追記するだけです。
JETTY_ARGS=jetty.httpConfig.sendServerVersion=false
こちらを設定して、jettyを再起動することでバージョン情報の出力が無効となります。応答ヘッダーの”Server“は、リバースプロキシに使用している"Apache"に変化しています。

エラーページについてもバージョン情報の表示が無効となります。

エラーページにて”SERVLET”に”default“と表示されていますが、気になる方は以下の設定を”/opt/jetty-base/webapps/idp.xml"に追記することで、こちらについても無効にできます。
<Configure> <!--中略-->
<Get name="errorHandler">
<Call name="setShowServlet">
<Arg type="boolean">false</Arg>
</Call>
<Call name="setShowStacks">
<Arg type="boolean">false</Arg>
</Call>
</Get>
</Configure>
以上、短いですがShibboleth IdPを運用される方の参考になれば幸いです。

