ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SSL] Tomcat에 Let’s Encrypt 설치 및 적용
    LINUX/SSL 2019. 11. 24. 18:53

    이번 포스팅에서는 Tomcat에 무료 SSL인 Let’s Encrypt을 설치 및 적용하려고 한다.

    간단하게 SSL란 기존 http형식에서 암호화된 https형식을 말한다.

    필자는 Ubuntu 14.0.4 버전을 기준으로 하였다.

    선행 조건으로 Tomcat 서버가 도메인 포트 80으로 꼭 설정되어야 한다.

    그래야만 Let’s Encrypt를 설치 할 수 있다.

    80포트로 도메인이 열려있어야 설치시 자동으로 임의의 위치에 확인용 txt를 생성 후 도메인에서 확인 후 인증서를 발급해준다.

    ex) alsdud154.iptime.org(O), alsdud154.iptime.org:80(O), alsdud154.iptime.org:8080(X)

     

    이제 Let’s Encrypt을 설치한다.

    webroot path는 본인 Tomcat webroot를 입력한다.

    index.jsp가 있는 경로를 입력하면 된다.

    그리고 -d는 본인의 ddns 주소를 입력한다.

    이메일은 인증서 만료가 가까워질 때 메일을 보낸다.

    # cd /root
    # wget https://dl.eff.org/certbot-auto
    # mv certbot-auto /usr/bin/letsencrypt
    # chmod 755 /usr/bin/letsencrypt
    # letsencrypt certonly --webroot --webroot-path=/home/alsdud154/src/portfolio -d alsdud154.iptime.org

     

     

    인증서는 정삭적으로 발급되었다.

    이제 인증서를 Tomcat에 적용시키자.

    필자의 Tomcat은 alsdud154라는 계정으로 실행하기 때문에 다운받은 letletsencrypt의 권한을 alsdud154로 바꿔주었다.

    $ sudo chown -R alsdud154:alsdud154 /etc/letsencrypt/

     

     

    Tomcat의 server.xml을 실행 후 Connector를 추가하고 redirectPort를 추가한 Connector와 같은 포트로 수정한다.

    root계정으로 실행할 것이 아니면 포트를 추가할 때 1025이상의 포트를 사용하자. 

    그 밑의 포트를 사용하면 root 권한으로 Tomcat을 시작하지 않으면 시작되지 않는다.

    보통은 8443 포트를 많이 사용한다.

    $ vim /usr/local/apache-tomcat-8.5.47-portfolio/conf/server.xml 
    
    
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" scheme="https" sec
    ure="true" SSLEnabled="true" defaultSSLHostConfigName="alsdud154.iptime.org">
            <SSLHostConfig hostName="alsdud154.iptime.org">
                    <Certificate certificateKeyFile="/etc/letsencrypt/live/alsdud154.iptime.org/privkey.pem" certificate
    File="/etc/letsencrypt/live/alsdud154.iptime.org/cert.pem" certificateChainFile="/etc/letsencrypt/live/alsdud154.ipt
    ime.org/fullchain.pem" type="RSA" />
            </SSLHostConfig>
    </Connector>

     

    이제 Tomcat을 재구동하면 정삭적으로 SSL이 적용되었다.

     

    인증서 유효기간은 3개월이다.

    그러므로 3개월마다 인증서를 재발급해야 한다.

    필자는 주기적으로 월요일마다 인증서 재발급을 실행하게 설정하였다.

    먼저 1개의 폴더와 파일을 777권한으로 바꾸었다.

    crontab -e을 입력 후 3번을 입력한다.

    첫번째 줄은 인증서를 재발급 하는 명령이다.

    새벽 4:10분, 4:15분에 실행한다.

    두번째 줄은 서비스에 Tomcat을 등록하여 저렇게 입력하였다.

    sudo chmod -R 777 /usr/bin/letsencrypt
    sudo chmod -R 777 /var/log/
    
    // 3번 입력
    $ crontab -e
    
    
    10 4 * * 1 /usr/bin/letsencrypt renew >> /var/log/le-renew.log
    15 4 * * 1 service portfolio restart

    'LINUX > SSL' 카테고리의 다른 글

    [SSL] Apache 서브 도메인 SSL 적용  (0) 2020.04.22
    [Apache] Ubuntu Apache SSL 적용  (2) 2020.04.22
Designed by Tistory.