반응형

인터넷에 Tomcat9 기준으로 인증서 설치한 후기가 너무 없어서 고생해서 하나 남겨본다.


(1) 인증서 구매

- 우선 인증서가 있어야 한다. 인증서를 어디서 살까 하다가 공짜사서 괜히 고생하기 싫어서 걍 돈을 좀 썼다

- 인증서는 보험이랑 호환성 등등의 다양한 조건에 의해서 1만원에서 100만원넘는 인증서가 있으나 우선 개발용이기 때문에 저렴한 1만원 짜리를 샀음.

- 아래 사이트에 가면 저렴하게 인증서를 살수가 있다.


단!!!) 인증서는 도메인이 들어가야하기 때문에 반드시 도메인을 먼저 사야 한다.


(2) 인증서 구매하게 되면 웹사이트에서 인증서를 다운로드 받을 수 있게 마이페이지에 가면 있다.

: 인증서를 다운로드 받을 때에는 용도에 맞게 다운 받으면 된다. pfx 같은 경우에는 IIS 서버에 설치할 경우에 다운로드 받는다.

  나는 TOMCAT에 설치할 거라서 모든 파일 다운로드 하고 jks 확장자의 인증서만 다운로드 받아 서버에 업로드함.

(3) Tomcat Home Directory 이하 conf 폴더에 업로드함.

: 내 개인서버 보안때문에 가릴것은 다 가리고 업로드함.

(4) Tomcat 서버 셋팅!

: server.xml를 열어서 아래와 같이 셋팅만 해주면된다.

   

     <Connector port="8080" protocol="HTTP/1.1"

                connectionTimeout="20000"

                 redirectPort="443" />   <= 8443을 443으로 꼭 바꿔주세요

 <Connector port="8443"

               protocol="org.apache.coyote.http11.Http11NioProtocol"

               maxThreads="150"

               SSLEnabled="true"

               defaultSSLHostConfigName="sungrangkong.kr">

        <SSLHostConfig hostName="sungrangkong.kr">

            <Certificate certificateKeystoreFile="conf/sungrangkong.kr_20181204AAAA.jks"

                         certificateKeystorePassword="a12345"

                         certificateKeyAlias="sungrangkong.kr"

                         type="RSA" />

        </SSLHostConfig>

    </Connector> 


: 빨강색 부분만 하면된다. sungrangkong.kr 이라고 된 부분은 인증서 구매할때 입력한 도메인 주소를 넣고 certificateKeystoreFile 에는 인증서 구매 후 CA(인증기관)에서 제공한 비밀번호를 넣어주면 된다.

※ 간혹 certificateKeyAlias의 값이 다른 경우가 있다. 이 경우에는 아래 명령어를 통해서 alias의 이름을 명확히 알고 입력 하면된다.

$ keytool -list -v -keystore 인증서이름.jks

Enter keystore password:

Keystore type: JKS

Keystore provider: SUN


Your keystore contains 1 entry


Alias name: alias이름  <= 요기 값을 확인해주세요.

Creation date: Jan 5, 2021

Entry type: PrivateKeyEntry

Certificate chain length: 4 


(5) 자 이체 실행해볼까요?

: 잘뜨긴하는데 문제가 하나 있죠!!!! http로 접속했을때 https로 자동으로 들어가면 참 좋을듯 합니다.

우분투의 경우에는 80 이나 443 포트는 관리자 권한이 있을경우 실행이 되기 때문에 8080이나 8443 으로 셋팅하고 방화벽쪽에 셋팅해서 라우팅을 거는작업을 많이 합니다.


(6) 라우팅 작업

 sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

 sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443 

: 이렇게 작업하면 80->8080 으로 443->8443 으로 잘 가겠죠?


(7) http -> https로 변환작업

이거는 간단하게 tomcat home directory > conf > web.xml 를 편집하면 하실 수 있습니다.


  <!-- to use within your application.                                       -->

   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    <welcome-file-list>

        <welcome-file>index.html</welcome-file>

        <welcome-file>index.htm</welcome-file>

        <welcome-file>index.jsp</welcome-file>

    </welcome-file-list>


    <security-constraint>

        <web-resource-collection>

            <web-resource-name>Protected Context</web-resource-name>

            <url-pattern>/*</url-pattern>

        </web-resource-collection>

    <!-- auth-constraint goes here if you requre authentication -->

        <user-data-constraint>

            <transport-guarantee>CONFIDENTIAL</transport-guarantee>

        </user-data-constraint>

    </security-constraint>


</web-app>

 

: 위의 빨강으로 표기된 데이터만 복사해서 붙여넣고 톰캣 재시작 하시면 됩니다.



지금까지 tomcat9에 인증서를 탑재하는 과정을 알아보았습니다.

반응형

+ Recent posts