サイオステクノロジーの服部です。
今回は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を運用される方の参考になれば幸いです。