톰캣 8.0 이하에서 HTTP Response 메시지에서 Server 값 바꾸기
HTTP 응답메시지의 헤더중 Server라는 속성이 있고 이 값은 웹서버 제품의 이름을 알려줍니다. 톰캣은 기본적으로 Apache-Coyote라는 값을 응답하도록 되어있습니다.

아래는 톰캣에게 요청을 보냈을때 응답 메시지를 캡쳐한것입니다.
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=A07D4A517740C52E01F502DBF8DE5C0C; Path=/; HttpOnly
Content-Type: text/html;charset=UTF-8
Content-Length: 142
Date: Tue, 09 Jul 2019 05:01:43 GMT
cs


그러나 보안적인 측면에서 보았을때 웹서버가 어떤 제품인지를 굳이 알려줘서 좋은점은 없습니다. 따라서 이 값을 수정하는것이 좋을것으로 보입니다. 톰캣 8.5부터는 응답메시지에 이 Server 속성을 포함시키지 않는것이 기본설정인데 그 이전 버전에서는 설정으로 직접 변경해주어야 합니다.





설정 방법
[톰캣 설치 디렉터리]/conf/server.xml을 찾아 에디터로 실행합니다.



이곳에서 클라이언트에서 HTTP요청에 사용하는 <Connector> 설정을 찾습니다. 8080 port로 설정되어 있거나 80번 port 또는 port가 설정되어 있지 않은 녀석을 찾으면 됩니다.
<Connector
    connectionTimeout="20000"
    port="8080"
    protocol="HTTP/1.1"
    redirectPort="8443"
    server="dololak" />
cs


그리고 위와 같이 명시적으로 server="값" 형태로 속성값을 지정해줍니다. 만약 이 server 값이 ""(공백)이거나 server 속성이 생략된 경우 기본값인 Apache-Coyote/1.1가 응답 헤더에 들어가게 됩니다.



설정을 변경하고 톰캣을 재시작한 후 HTTP 요청시 응답 메시지를 보면 다음과 같이 바뀌어 있음을 확인할 수 있습니다.
HTTP/1.1 200 OK
Set-Cookie: JSESSIONID=DAAEE662066FC8B0916CE4C680FFE065; Path=/; HttpOnly
Content-Type: text/html;charset=UTF-8
Content-Length: 142
Date: Tue, 09 Jul 2019 05:12:03 GMT
Server: dololak
cs

블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

댓글을 달아 주세요! 질문 환영합니다!