[Tomcat] handleSubClassException Failed to start component [Connector[AJP/1.3-8021]] 오류 해결
AJP 포트를 연결하여 프로젝트를 배포하는 중에 톰캣을 구동하면 다음과 같은 에러 로그가 발생한다.
26-Oct-2020 10:16:31.110 SEVERE [main] org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to start component [Connector[AJP/1.3-9021]]
org.apache.catalina.LifecycleException: Protocol handler start failed
at org.apache.catalina.connector.Connector.startInternal(Connector.java:1067)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:438)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
Caused by: java.lang.IllegalArgumentException: The AJP Connector is configured with secretRequired="true" but the secret attribute is either null or "". This combination is not valid.
at org.apache.coyote.ajp.AbstractAjpProtocol.start(AbstractAjpProtocol.java:270)
at org.apache.catalina.connector.Connector.startInternal(Connector.java:1064) ... 12 more
이는 AJP 포트를 설정할 시에 tomcat [conf] 경로에 있는 server.xml 파일에서 설정을 하는데,
secretRequired 속성이 기본적으로 true로 작동하여 발생하는 문제로 secret 속성값을 설정하지 않으면서(기본값 null) secretRequired가 true 로 커넥터 설정이 되어버리면
유효하지 않은 설정으로 간주하여 에러가 발생한다.
톰캣 8.5 버전과 9.0 버전은 AJP 설정부분에 secretRequired = "false" 속성을 사용하여야한다.
해결 방법
server.xml 파일을 열어보면 아래와 같은 태그가 있다. (포트 번호는 운영 환경에 따라 다를 수 있다.)
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
이를 다음과 같이 변경해야한다.
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" address="0.0.0.0" secretRequired="false"/>
혹은
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" address="::1" secretRequired="false"/>
- address : 사용 주소를 넣어준다. ":::1" 혹은 "0:0:0:0" 을 넣어도된다.
- secretRequired : 비밀 값(인증키)가 필요한 지에 대한 설정이다. false를 넣어준다.
참고 사이트 : eastpost95.blogspot.com/2020/03/apache-tomcat-ajp-cve-2020-1938-apache.html
'Front > WebServer' 카테고리의 다른 글
VCRUNTIME140.dll 오류 원인 및 해결방법 (2) | 2021.03.10 |
---|---|
[Apache] Windows 10 64bit 환경 Apache2.4 설치 및 설정 (10) | 2021.03.10 |
[Tomcat] 톰캣 9.0 콘솔 창 한글 깨짐 오류 해결하기 (0) | 2020.10.24 |
[Apache] SpringBoot AJP 포트 설정하기 (0) | 2020.09.08 |
[Error] 톰캣 server.xml 설정에러 : Error processing request NullPointException (0) | 2020.01.03 |
댓글