실무에서 웹 개발을 하다보면 보통 로컬에서 테스트할때는 http:// 로 테스트하는 경우가 많은데요.

 

톰캣 실행 후, 브라우저에서 http://localhost:8080 이런 식으로 접속해서 많이 테스트 할 것 같습니다.

 

실제 개발서버나 운영서버도 http 인 경우도 많겠지만 요즘은 보안적인 이슈때문에 https를 적용하는 곳도 많이 있을텐데요. 

특히, 과거에는 로그인 구간 등 일부만 https로 적용하고 그 이외는 http로 적용하는 경우가 많았는데, 요즘에는(하드웨어 장비의 성능 향상으로) 사이트 전체를 https로 적용도 많이 한다고 하네요

 

간혹 로컬에서 https를 적용해서 테스트를 해야 할 필요가 있을텐데요. 개발이나 운영에 소스를 반영전에 로컬 환경에서 https 통신이 정상적으로 이루어지는지 1차적인 검증을 먼저 하기를 원하는 경우가 많으니까요.

 

그래서 여기에서 로컬 톰캣에 https(ssl) 를 적용하는 방법에 대해서 살짝 알아보겠습니다.

 

톰캣을 기본적으로 실행시키면 아래처럼 http://localhost:8080 으로 띄울수 있는데요.

(저는 포트를 8081로 바꾼상태입니다.)

 

 

 

여기서 https://localhost 로 바꿔보겠습니다.

 

 

정상적으로 메인 페이지가 띄워졌으면 좋으려만

 

 

사이트에 보안 연결할 수 없음이라는 에러페이지가 나오네요.

 

톰캣은 기본 포트가 http는 8080 이고, https는 8443 입니다. 

그럼 혹시 모르니 포트를 8443으로 해보겠습니다.

 

 

하지만 역시나... 

 

 

 

 

 

 

 

 

 

https 설정을 하기 위해서는 인증서가 필요합니다. 실제 운영하는 사이트에 https를 적용하려면 신뢰받는 공인된 기관의 인증서를 발급 받아서 설치해야 합니다. 하지만 저희는 로컬에서 테스트 목적이니까 키스토어를 생성해서 적용하는 방법으로 해보겠습니다.

 

cmd 창을 켜서, 자바가 설치되어있는 경로의 bin 폴더로 이동합니다.

그리고 keytool -genkey -alias tomcat -keyalg RSA 라고 입력을 해줍니다.

(저는 윈도우 환경에서 진행하지만 다른 운영체제에서도 마찬가지입니다.)

 

 

그러면 키 저장소 비밀번호를 입력하라고 하는데요. 

비밀번호를 입력해줍니다. 비밀번호는 절대 잊어먹으면 안됩니다.

 

 

 

그리고 이것저것 묻는데, 로컬에서 단순 테스트 용이므로 답변은 중요치 않습니다...

 

 

여기서는 저는 Enter 눌렀습니다.

 

 

마지막으로 Warning 가 뜨는데... 여기서는 일단 중요치 않으므로 패스하겠습니다.(저도 잘 몰겠음)

 

 

 

톰캣이 설치된 경로의 server.xml 파일을 오픈해줍니다.

 

그리고 아래와 같이 복사 - 붙여넣기 해줍니다.

 <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

               maxThreads="150" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS"

               keystoreFile="${user.home}/.keystore" keystorePass="asdfg12345!"/>

 

keystorePass는 아까 키 스토어 생성시 입력한 비밀번호를 적어줘야 합니다.

 

그리고 나서 톰캣을 다시 리스타트 해줍니다. 혹시, 모르니 톰캣 Clean 한 번 해주세요.

 

그리고 브라우저에서 https://localhost:8443 으로 입력을 해줍니다.

그러면 아래처럼 뜨는데요. 

(크롬 기준입니다. 브라우저마다 조금씩 달라요~~)

 

 

아까는 사이트에 연결할 수 없습니다 라고 떴는데 지금은 다르네요.

아래 고급 버튼을 누릅니다.

 

그리고 안전하지 않음으로 이동을 누릅니다.

 

 

 

그러면 우리가 원하던 https://localhost:8443 으로 접속이 된 것이 확인이 가능합니다.

한 번에 접속이 안되었던 이유는 인증서가 신뢰할 수 있는 기관에서 발급된 공인된 인증서가 아니기 때문입니다. 하지만 우리는 https로 로컬에서 테스트만 할 수 있으면 되니까요ㅎㅎ

+ Recent posts