-
[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