본문 바로가기
OS/Linux

[Linux] [CentOS 7] tomcat에 https 인증 넣기 / 443 포트 / jks파일

by 애기 개발자 2023. 3. 11.
반응형

2023.03.10 - [OS/Linux] - [Linux][CentOS7] 방화벽 port 설정하기

 

[Linux][CentOS7] 방화벽 port 설정하기

방화벽 설정 확인하기 firewall-cmd --list-all 위의 명령어 실행 시 위처럼 설정된 정보를 알 수 있다. 포트 추가 firewall-cmd --permanent --zone=public --add-port=3000/tcp 임의로 3000 포트를 열었다. tcp/udp 에 따라

baby-dev.tistory.com

 

사실 앞선 port설정하기를 작성한 이유는

 

이 글을 위함이다.

 

최근 tomcat만 설치된 서버에 https 사설 인증서를 추가해야 했는데

 

그 과정을 기록하고자 한다.

 

1. tomcat 파일 위치에 폴더 및 jks 파일 생성

보통 톰캣은

 

/usr/local/tomcat 위치에 있다.

 

이 위치에 나는 추가로 /ssl/keystore/ 파일을 생성해 주었다.

 

cd /usr/local/tomcat/ssl/keystore

 

해당 위치로 cd를 해준 후

 

keytool -genkey -alias https_test -keyalg RSA -keypass 12341234 -storepass 12341234 -keystore https_test.jks -validity 3650

위의 명령어로 jks파일을 생성해 준다.

 

-alias : jks 명

-keypass / -storepass : 비밀 번호

-keystore : 생성할 파일명

-validity : SSL인증서의 유지 기간(일 단위)

 

이후 명령어를 실행시키면

 

이름과 지역을 물어보는 입력창이 나오고 맞는지 확인하는 입력창이 뜬다.

 

 

생성된 jks파일을 확인하는 명령어는

 

keytool -list -v -keystore https_test.jks

위의 명령어와 앞서 설정한 비밀번호를 입력하면 된다.

 

이로써 jks파일 생성이 끝났다.

 

2. tomcat의 server.xml 파일 수정

server.xml 파일의 위치는

/usr/local/tomcat/conf/server.xml 에 있다.

 

파일을 열어서 쭉 내리다 보면

 

    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />
    -->

위와 같은 코드 부분을 찾을 수 있는데 해당 부분의 주석을 해제하고

 

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
	           keystoreFile="/usr/local/tomcat/ssl/keystore/https_test.jks"
	           keystorePass="12341234" />

keystoreFile에 jks파일의 경로를

keystorePass에 설정한 비밀번호를 입력해 준 후 저장하면 끝난다.

 

3. 방화벽 설정

우린 앞서 server.xml파일에 8443 포트로 설정을 해주었다.

 

8443은 https의 포트이며 뒤에 주소 입력시 https://주소:8443 이런 식으로 붙여주어야 하는데 

 

우리는 이를 443 포트로 포워딩 할 것이다.

 

우선 서비스를 등록해 준다.

 

* 방화벽 설정을 할 시 root계정으로 하여야 합니다.

 

우선 http와 https의 서비스를 등록한 후

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https

 

8443 포트를 열어준다.

firewall-cmd --permanent --add-port=8443/tcp

 

그리고 443 포트를 8443으로 포워딩 시켜준다.

 

firewall-cmd --add-forward-port=port=443:proto=tcp:toport=8443
firewall-cmd --runtime-to-permanent

 

이후 방화벽 재시작

 

firewall-cmd --reload

 

방화벽 설정이 제대로 되었는지 확인.

 

firewall-cmd --lsit-all

4. tomcat 재시작

앞서 tomcat의 설정을 변경해 주었기 때문에 tomcat을 재시작 해주어야한다.

 

또한 재시작 후 8443 포트가 제대로 열려있는지 확인을 해야 한다.

 

netstat -nap | grep 443

 

보면 8443 포트가 LISTEN 중이면 제대로 열린 것이다.

5. 확인

사설 인증서이기 때문에

 

https://주소 로 검색하면 위와 같은 화면이 나올 것이다.

 

하단의 고급 > 주소(안전하지 않음)(으)로 이동 을 클릭하면

 

자신이 설정한 홈페이지가 https로 열리는 것을 확인할 수 있다.

 

 


혹여나 jks파일을 삭제하고자 한다면

 

keytool -delete -alias https_test -keystore https_test.jks

 

설정한 비밀번호를 입력하면 삭제가 완료된다.

 

파일 자체는 남아있으므로 삭제는 직접 해주어야 한다.

반응형

댓글