티스토리 뷰

AWS Route53에서 생성한 도메인은 AWS ACM에서 인증서를 발급 받아 EC2, ELB에 적용 가능

현재 회사에서 하고 있는 프로젝트의 도메인은 Whois에 신청하여 별도의 인증서 발급이 필요

Whois에 돈을 지불하고 인증서를 발급 받거나 letsencrypt 사용하여 무료로 발급 받는 두 가지

방법 중 letsencrypt로 결정

 

Let's Encrypt

인터넷을 안전하게 보호(전송 데이터 암호화)할 수 있게 인증서를 제공

현재 3억 개의 웹사이트에 SSL/TLS 인증서를 발급하였고 AWS, IBM, Chrome 등

수 많은 대형 기업들이 후원하고 있는 믿고 사용할만한 서비스

 

Certbot

letsencrypt(CA)에서 Certbot ACME(자동 인증서 관리 환경) 사용 권장

Certbot은 수동으로 관리되는 웹사이트에서 Let’s Encrypt 인증서를 자동으로 사용

HTTPS 활성화해주는 무료 오픈 소스 소프트웨어 도구

 

HTTPS 접근을 위한 AWS Securiy Group 설정

  • Inbounds
    • 22, 80, 443
  • Outbounds
    • 모든 트래픽 허용

 

EC2 SSH 에서 certbot 설치

sudo yum install certbot

 

certbot 인증서 발급

sudo certbot certonly --standalone

 

위 과정을 거치고 정상적으로 인증서를 발급 받으면 /etc/letsencrypt/live/도메인 주소(폴더 명)에 생성된

인증서 목록을 아래 이미지와 같이 확인 가능(keystore.p12제외)

 

 

Spring boot에서 사용할 수 있는 PKCS12 형태로 변경

(PKCS12는 인증서 체인 및 개인 키를 암호화 가능한 단일 파일에 저장하는 이진 형식)

아래 명령어 입력 후 진행 중 패스워드를 요구하는데 Spring Boot application.properties에 적용할 값이다

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

 

keystore.p12 파일 적용

  • src
    • main
      • resources
        • keystore.p12

 

Spring Boot application.properties 설정

 

SSL 적용 관련하여 참조한 URL

 

https://eff-certbot.readthedocs.io/en/stable/using.html#manual-renewal