본문 바로가기
기록/Server&Network

[Tomcat/Linux] 톰캣 http -> https 설정 방법

by 자임 2022. 6. 30.

https를 사용하는 이유 :
보안을 위해서.
이 웹사이트가 어떤 사이트인지, 누가 만든 사이트인지, 통신이 안전한지 등의 정보를 알아야 하기 때문에 HTTPS 통신을 한다.
HTTPS/SSL 통신을 하면, 인증기관(CA)에서 해당 사이트가 누구의 소유인가, 누가 만든것인가 등의 정보를 인증해주고, 이러한 인증기관의 인증으로 안전한 사이트 접속을 하게 한다.

출처 : https://namjackson.tistory.com/25


 



1) 키스토어 파일 생성


1. $JAVA_HOME/bin 으로 이동
2. keystore 파일 생성

keytool -genkey -alias tomcat -keyalg RSA -keystore tomcatkeystore


3. CSR 파일 생성

keytool -certreq -keyalg RSA -alias tomcat -file certreq.csr -keystore tomcatkeystore


4. tomcat server.xml 수정

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" 
	maxThreads="150" SSLEnabled="true" scheme="https" secure="true" 
    clientAuth="false" sslProtocol="TLS" keystoreFile="경로/tomcatkeystore" 
    keystorePass="비밀번호"/>


5. tomcat 재시작

참고 : 
https://salguworld.tistory.com/140
https://qor3326.tistory.com/18




* 키스토어 파일이 생성된 곳에 tomcat 권한을 줬는지 확인한다. 권한이 없어서 적용 안 되는 건데 무슨 오류인지 몰라서 오래 삽질했다..

오류 메시지 :

심각 [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[HTTP/1.1-8443]]
        org.apache.catalina.LifecycleException: 프로토콜 핸들러 초기화가 실패했습니다.
Caused by: java.io.FileNotFoundException: 경로/tomcatkeystore (허가 거부)


참고 : https://okky.kr/article/834202?note=2175918





 

2) https 리다이렉트 설정

http 포트로 접근해도 https로 리다이렉트 되도록 설정해준다.



- tomcat web.xml 수정

<security-constraint>
	<web-resource-collection>
		<web-resource-name>HTTP</web-resource-name>
		<url-pattern>/*</url-pattern>
	</web-resource-collection>
	<user-data-constraint>
		<transport-guarantee>CONFIDENTIAL</transport-guarantee>
	</user-data-constraint>
</security-constraint>



참고 : 
https://uulog.tistory.com/608
https://www.devkuma.com/docs/tomcat/http%EC%97%90%EC%84%9C-https%EB%A1%9C-%EC%9E%90%EB%8F%99-%EB%A6%AC%EB%8B%A4%EC%9D%B4%EB%A0%89%ED%8A%B8-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0/