● 개요
젠킨스 환경설정의 길은 멀고도 험했다.... 가상호스트에 TLS(SSL)까지 적용된 환경에서는 뭔놈의 에러가 이리 많이 발생하는지... 테스트 환경의 설정하고는 난이도가 비교조차 되지 않았다 ㅡㅡ;;;; 구글에서 검색조차 되지 않을 정도로 삽질한 사람들도 적다................
아무튼 각설하고 젠킨스 자동빌드 환경을 구성하려고 하는데
Caused by: javax.net.ssl.SSLHandshakeException: No subject alternative names matching IP address 아이피주소 found
요딴 에러가 발생하면 아래 해결책이 있다....
● 환경
- CentOS 7
- 젠킨스 2.346.1
- 아파치 톰캣 8.5
- 젠킨스와 톰캣은 동일한 서버에 설치됨
- 톰캣 가상호스트 사용중
- TLS(SSL) 적용중..
● 원인
일단 웹브라우저로 톰캣 매니저에 접속해본다. (예: https://서버IP주소:SSL포트/manager/html 와 https://서버IP주소:SSL포트/host-manager/html 이다. 접속 성공하면 아이디 비밀번호를 물어본다..) 정상적으로 접속이 된다면 넘어간다..
다음으로 젠킨스 설정 중 빌드 후 조치는 위와 같이 되어 있었을 것이다....
이 상태에서 빌드 후 배포를 하려고 하면 젠킨스가 IP 주소로 톰캣 메니저에 접근 할려고 하니 인증서 도메인과 일치하지 않아서 SSLHandShakeException이 발생한다... 서버 jre의 keystore에 TLS(SSL)파일을 등록해도 안된다... 죽어도 안된다.
● 해결책
위 원인에서 톰캣 매니저 접근 시 주소가
https://서버IP주소:SSL포트/manager/html
https://서버IP주소:SSL포트/host-manager/html
이런식으로 되어 있는데 본인이 업무하는 곳이라면 DNS 담당자에게 요청해서 DNS서버에 도메인으로 접속할 수 있도록 도메인을 생성해야 한다.
예시) https://devsim.dev.co.kr:443/manager/html
예시) https://devsim.dev.co.kr:443/host-manager/html
도메인이 새롭게 생성되었으면 당연히 톰캣 server.xml 파일도 수정이 되어야 한다.
//보통 webapps 접속 Host 구문은 아래와 같을 것이다.
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
//이것을 새로 생성한 DNS로 변경한다.
<Host name="devsim.dev.co.kr" appBase="webapps" unpackWARs="true" autoDeploy="true">
//당연히 톰캣은 재시작해야한다...
그럼 이제 도메인으로 톰캣 매니저에 접속이 가능하다.
다시 젠킨스로 돌아와서 해당 프로젝트 구성 -> 빌드 후 조치 -> Tomcat URL 항목을 TLS(SSL)과 도메인 형식으로 변경한다.
이제 SSLHANDSHAKE 오류는 더이상 발생하지 않을 것이다...
'VCS, CI' 카테고리의 다른 글
젠킨스 FileNotFoundException 파일 cannot be oppend because it does not exist 문제 (0) | 2022.07.21 |
---|---|
젠킨스 Jenkins TomcatManagerException: The Tomcat Manager responded "<html> ... 문제 해결 (0) | 2022.07.13 |
젠킨스 TLS(SSL) 접속 설정 방법 (0) | 2022.07.07 |
스프링 외부 jar 파일 추가 후 젠킨스 빌드하기 (0) | 2022.07.05 |
젠킨스 설치 후 구동 시 Failed to start Jenkins Continous Integration Server 에러 조치 (0) | 2022.06.30 |