개요
2024.09.05-[Nginx] server_tokens - 서버 정보 명시 여부 결정에서 nginx 사용 시 서버 정보를 노출하지 않도록 설정을 했었다. 비슷한 설정으로 이번 글에선 Tomcat 사용할 때 응답에 server 정보를 설정해 보자.
기본 설정
Tomcat 사용할 때의 서버 정보는 conf/server.xml의 Connector 설정에서 지정할 수 있는 것 같다.
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
-->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxParameterCount="1000"
/>
설치 후 기본 설정은 위와 같은데, 기본 설치 후 서비스를 시작하여 Tomcat 서버에 접속해 보면 응답 헤더는 다음과 같다.
server 속성
응답 헤더에 server 정보를 임의로 지정할 때는 server.xml의 Connector 부분은 server 속성을 추가하면 된다.
server 속성은 http 응답에 대한 server 헤더를 재정의한다. server 속성에 값이 설정되어 있으면 애플리케이션에서 설정한 값보다 우선순위가 높다.
하지만 값이 설정되어 있지 않으면 애플리케이션에서 지정한 값이 사용되는데, 애플리케이션에서도 지정한 값이 없으면 server 헤더를 설정하지 않는다.
# /APACHE_HOME/conf/server.xml
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
-->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
server="SERVER_NAME"
maxParameterCount="1000"
/>
테스트로 위와 같이 SERVER_NAME이라는 값으로 server 속성을 지정하고 Tomcat을 재시작해보았다.
/APACHE_HOME/bin/shutdown.sh
/APACHE_HOME/bin/startup.sh
서버에 접속해보면 응답 헤더에 다음과 같이 server 속성이 추가된 모습을 확인할 수 있다.
참고 문서
https://tomcat.apache.org/tomcat-9.0-doc/config/http.html
https://m.blog.naver.com/websearch/221816073813