[CentOS7] Let's Encrypt SSL 인증서 발급 및 적용(tomcat)

2021. 1. 21. 21:12·개발/Linux
728x90

무료 SSL/TLS 인증서 - Let's Encrypt

Let's Encrypt는 사용자에게 무료로 TLS 인증서를 발급해주는 비영리기관이다.
발급된 인증서는 유효기간이 90일이며 만료 30일 전부터 갱신할 수 있으며, 갱신 가능 횟수는 무제한이다.
인증서 가격이 3만 원에 이르고 와일드카드의 경우 15만 원에 이르러 1년 동안 제공되지만 돈 없는 일반인에게는 부담되는 가격이지만, 이런 점들을 해결해 준다.

 SSL 인증서 발급(CentOS)

1. 설치

$ yum install epel-release
$ yum install python-certbot-apache

2. SSL인증서 발급

도메인 별로 인증서를 발급받아야 한다. 인증서 생성 방식은 webroot이고, -w 에는 해당 도메인의 프로젝트 위치  -d 는 hosts에 등록된 도메인 (또는 관련 도메인)  -email은 관리자 메일이다.

$ certbot certonly --webroot -w /usr/local/tomcat/ -d www.test.com --email test@naver.com

인증서를 만들면 [/etc/letsencrypt/live] 경로에 도메인 별로 파일이 생성된다

등록한 도메인별 파일 생성

해당 파일에 들어가면, 4개의 key가 생성된 것을 확인할 수 있다.

해당 디렉토리에 생성된 Keys

3. SSL인증서 발급 확인

발급받은 인증서들에 대한 정보들이 표시가 된다.

$ certbot certificates

4. SSL인증서 삭제

인증서를 원래 발급했었고, 인증서 발급에 사용한 계정을 계속 제어할 수 있는 경우, 계정 자격 증명을 사용하여 인증서를 해지한다.

$ certbot revoke --cert-path /etc/letsencrypt/archive/www.test.com/cert1.pem

5. SSL인증서 갱신

잘 갱신되는지, 명령에 오류가 나진 않는지 등을 테스트해 볼 수 있다. 오류가 발생했다면, 오류를 수정해주고, 아무 문제 가 없다면 갱신이 문제없이 이루어진다.

$ certbot renew --dry-run

6. SSL인증서 자동갱신

유효기간이 90일이며 만료 30일 전부터 갱신할 수 있다. sudo를 사용하여 crontab을 등록하여 갱신한다.

$ sudo crontab -l # Crontab 보기
$ sudo crontab -e # Crontab 편집

contab에 등록

# 2개월마다 갱신을 하며 1일 새벽4시에 갱신을 하고 로그를 기록한다.
0 4 1 */2 * root /usr/bin/certbot renew >> /var/log/letsencrypt/renew.log

 

SSL인증서 tomcat적용

1. jks로 변경하여 사용하기(pem ->pkcs12-> jks)

inkey는 [/etc/letsencrypt/live/도메인명/] 경로에 있는 key이다

# pem -> pkcs12 / 패스워드 입력
$ openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name tomcat -CAfile chain.pem -caname root

# pkcs12 -> jks / 패스워드는 위의 openssl 사용 시 사용했던 패스워드 사용
$ keytool -importkeystore -deststorepass {password} -destkeypass {password} -destkeystore  letsencrypt.jks -srckeystore keystore.p12 -srcstoretype PKCS12 -srcstorepass {password} -alias tomcat

2. 도메일 별 pem 사용

server.xml을 수정한다. 도메인으로 등록된 host를 지정하여, 도메인 별 SSL을 사용한다.

<Connector  URIEncoding="UTF-8" port="443" server=" " protocol="org.apache.coyote.http11.Http11NioProtocol"
 maxThreads="150" SSLEnabled="true" defaultSSLHostConfigName="www.test.com">
 <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
 <SSLHostConfig hostName="www.test.com">
    <Certificate certificateKeyFile="/etc/letsencrypt/live/www.test.com/privkey.pem"
       certificateFile="/etc/letsencrypt/live/www.test.com/cert.pem"
       certificateChainFile="/etc/letsencrypt/live/www.test.com/chain.pem"
       type="RSA" />
   </SSLHostConfig>
   <SSLHostConfig hostName="www.test2.com">
    <Certificate certificateKeyFile="/etc/letsencrypt/live/www.test2.com/privkey.pem"
       certificateFile="/etc/letsencrypt/live/www.test2.com/cert.pem"
       certificateChainFile="/etc/letsencrypt/live/www.test2.com/chain.pem"
       type="RSA" />
   </SSLHostConfig>
   <SSLHostConfig hostName="www.test3.com">
    <Certificate certificateKeyFile="/etc/letsencrypt/live/www.test3.com/privkey.pem"
       certificateFile="/etc/letsencrypt/live/www.test3.com/cert.pem"
       certificateChainFile="/etc/letsencrypt/live/www.test3.com/chain.pem"
       type="RSA" />
   </SSLHostConfig>
</Connector>

 


인증서를 발급받고, 자동갱신이 되었는지, 아직 확인은 하직 못했다. 2개월이 지나서 자동갱신이 된다면 기록하겠다.😋

SSL인증서 발급 확인


letsencrypt 사이트에  들어가면, OS별 자세한 사용방법이 나와있다.

letsencrypt.org/ko/getting-started/

 

시작하기 - Let's Encrypt - 무료 SSL/TLS 인증서

마지막 업데이트:Dec 21, 2019 참고: 번역 이후 영어 버전이 업데이트되었습니다 (Feb 11, 2020) 영어로 보기 웹 사이트에서 HTTPS를 사용하려면 CA(인증 기관)에서 인증서(파일 유형)를 가져와야 합니다.

letsencrypt.org

728x90
저작자표시 비영리 변경금지 (새창열림)

'개발 > Linux' 카테고리의 다른 글

[Linux/Ubuntu] apt-get update오류 Hash sum mismatch  (0) 2021.04.11
[Linux/Ubuntu] E: Unable to lock directory /var/lib/apt/lists/ 처리  (1) 2021.01.29
[Linux/Ubuntu] openssl 설치(+wget 사용)  (0) 2021.01.07
[Linux/Ubuntu] su : Authentication failure  (0) 2021.01.06
[Linux/Ubuntu] 최근 파일 N개를 제외한 파일 전부 삭제  (0) 2021.01.04
'개발/Linux' 카테고리의 다른 글
  • [Linux/Ubuntu] apt-get update오류 Hash sum mismatch
  • [Linux/Ubuntu] E: Unable to lock directory /var/lib/apt/lists/ 처리
  • [Linux/Ubuntu] openssl 설치(+wget 사용)
  • [Linux/Ubuntu] su : Authentication failure
호이호이209
호이호이209
이것저것 기록하는 메모장
    250x250
  • 호이호이209
    R=VD
    호이호이209
    • R=VD전체글 (83)
      • 개발 (63)
        • Linux (19)
        • 머신러닝 (10)
        • Git (6)
        • Python (9)
        • 프로그래밍 언어 (2)
        • Docker (5)
        • ETC (12)
      • 일상기록 (20)
        • 여행 (5)
        • 일상-이모저모 (8)
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
호이호이209
[CentOS7] Let's Encrypt SSL 인증서 발급 및 적용(tomcat)
상단으로

티스토리툴바