일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Oracle 사용자명
- 오라클 캐릭터셋 조회
- Oracle 윈도우 설치
- 오라클 캐릭터셋 확인
- 서평단
- 윈도우 Oracle
- Oracle 테이블 띄어쓰기
- oracle
- 오라클 캐릭터셋 변경
- Oracle Express Edition
- Oracle 사용자명 입력
- 무료 오라클 설치
- Oracle 테이블 대소문자
- Oracle 초기 사용자
- Oracle 18c 설치
- 무료 오라클 데이터베이스
- Oracle 18c HR schema
- ORA-12899
- oracle 18c
- Oracle 18c HR
- ora-01722
- ORA-00922
- 비전공자를 위한 데이터베이스 입문
- Orace 18c
- Today
- Total
Nirsa's Learning Lab
[Tomcat] apache tomcat 7.0.100, 8.5.51 , 9.0.31 버전 연동 실패 (무한 로딩, 403 에러 발생, 503 에러 발생) 본문
[Tomcat] apache tomcat 7.0.100, 8.5.51 , 9.0.31 버전 연동 실패 (무한 로딩, 403 에러 발생, 503 에러 발생)
Nirsa 2020. 2. 16. 17:29
해당 내용은 Ghostcat(CVE-2020-1938) 취약점 패치에 의한 영향인것으로 보입니다.
Tomcat Ghostcat(CVE-2020-1938) 취약점 : https://nirsa.tistory.com/150
-
구성 환경
- OS : CentOS 7.7 1908
- APP : apache-2.4.6 / tomcat-9.0.31 or 8.5.51 or 7.0.100 / openJDK-1.8.0.242.b08-0.el7_7.x86_64 / mod_jk tomcat-connectors-1.2.46
- 구성 내용 : apache 서버, tomcat 서버 물리적 분리 후 mod_jk 연동 (SSL 연동 X)
-
발생 원인
아래에 작성된 내용들은 apache 설정 및 selinux, F/W 등에 문제가 없을 경우에 해당 합니다.
2020년 02월 11일 톰캣에서 8.5.51 버전과 9.0.31 버전을 릴리즈하며 tomcat-apache 연동 설정을 기존대로 구성 시 연동 실패(무한로딩, 403에러 발생)가 발생 하며 AJP 기본값이 루프백 주소를 수신하도록 변경되어 수정해주지 않을 시 503 에러가 발생 합니다.
apache-tomcat 연동 시 변경된 주요 내용은 아래와 같습니다.
- AJP Connector 기본 값 비활성화
- AJP Connector 속성 address 추가 (기본값:루프백)
- AJP Connector 속성 secretRequired 추가 (requiredSecret 에서 변경된걸로 보입니다)
- AJP Connector 속성 allowedRequestAttributesPrattern 추가
-
관련 자료
tomcat의 공식 커뮤니티 사이트 문서이며 원본 확인은 tomcat 공식 커뮤니티 사이트(https://tomcat.apache.org/index.html) 에서 확인 해주세요.
8.5.51 버전과 9.0.31 버전의 릴리즈 내용은 같으므로 8.5.51만 스크린샷 첨부 하겠으며, 속성에 대한 설명은 아래 링크를 참고 해주세요.
apache 8.5.51 : https://tomcat.apache.org/tomcat-8.5-doc/config/ajp.html
apache 9.0.31 : https://tomcat.apache.org/tomcat-9.0-doc/config/ajp.html
-
1) 무한 로딩 해결 방법
이번에 릴리즈되면서 기본값으로 SSL을 사용하도록 설정되어있기 때문에 SSL을 사용하지 않는 환경에서는 무한 로딩이 발생 합니다.
${catalina-home}/conf/server.xml 파일의 AJP Connector 필드에 secretRequired="false" 를 입력 해주세요.
-
2) 403 에러 해결 방법
secretRequired="false" 가 아닌 requiredSecret="false"를 입력했을 경우 발생할 수 있습니다. 2020년 02월 11일에 릴리즈된 8.5.51 버전과 9.0.31 버전은 secretRequired 속성으로 사용하여야 합니다.
-
3) 503 에러 해결 방법
이번에 릴리즈되며 AJP가 기본값으로 루프백 주소를 사용하도록 되었습니다. address="0.0.0.0" 와 같이 네트워크 대역을 확인 후 추가 해주어야 합니다.
-
최종 설정
저는 위의 1~3번을 모두 설정하여 최종적으로 무한 로딩, 403과 503 에러를 해결하고 정상적인 서비스를 확인할 수 있었습니다.
# 최종 설정 내용
<Connector protocol="AJP/1.3"
address="0.0.0.0"
secretRequired="false"
port="8009"
redirectPort="8443" />