개발/Spring Boot

[Spring Boot] ssl 인증서 적용 및 발급(Let's Encrypt )

아현이라구 2023. 10. 11. 13:34
반응형

ssl 인증서 발급 방법.

 

1) Let's Encrypt

SSL : CA(Certificate Authority, 인증기관)에서 유료로 발급해주는 인증서로 보안연결(https)을 가능하게 한다.

 

https의 보급을 위해 mozilla, cisco, chrome, meta, aws 등 다양한 기관에서 후원을 해 2016년에 Let's Encrypt 라는 이름의 무료 인증기관이 생겼다. - https://letsencrypt.org/

 

그러나 이 무료 인증기관은 한 가지 단점이 있는데, 3개월마다 SSL을 갱신해야한다.

Certbot은 3개월마다 갱신해야하는 번거로움을 자동화해주는 오픈소스이며,

Let's Encryt에서도 이 방식을 추천한다.

 

https://certbot.eff.org/

2) Certbot 설치 / SSL 발급

  • 서버 OS : Centos7 환경 기준, 다른 OS의 경우

https://certbot.eff.org/instructions 에서 상세 방법을 찾아볼 수 있다.

 

// snap 설치를 위한 라이브러리 설치
sudo yum update
sudo yum install epel-release

// snap설치
sudo yum install snapd

sudo systemctl enable --now snapd.socket

sudo ln -s /var/lib/snapd/snap /snap

-------------------------------------

//snap을 통한 certbot 설치
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

 

  • 2가지 방법이 있다. (standalone : 서버 재시작 필요 / webroot : 서버 재시작 불필요)
sudo certbot certonly --standalone
  • 아래와 같은 log 출력 후  ssl 인증서가 발급된다

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/subbak2.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/subbak2.com/privkey.pem

 

Spring Boot에 인증서를 적용하기 위해서는 해당 파일을 PKCS12 또는 JKS로 변환을 해야함.

이번 가이드에서는 PKCS12를 기준으로 설명.

 

pem 파일 경로에서 다음과 같은 명령 실행

openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name tomcat -CAfile chain.pem -caname root

 

 

 

application.yml - ssl 적용 방법

server:
  ssl:
    enabled: true
    key-store: classpath: 파일명 
    key-store-password:대상 키 저장소 비밀번호
    key-store-type: key-store 파일의 타입  # JKS / PKCS12 ...
    key-alias: alias #SSL 키 스토어(keystore)에서 사용할 키 엔트리의 별칭(alias)을 지정하는 데 사용됩니다.

작업 이 후 key-store 옵션의 입력값 위치에 ssl 파일 배치

반응형