반응형

빡치는 젠킨스...

● 개요

  젠킨스 환경설정의 길은 멀고도 험했다.... 가상호스트에 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 오류는 더이상 발생하지 않을 것이다...

반응형

+ Recent posts