[SpringBoot] SSL 인증서 생성, 적용하기

이재윤·2024년 11월 17일

SpringBoot와 Devops

목록 보기
3/6
post-thumbnail

SSL 인증서 생성 및 적용하기

SSL(Secure Sockets Layer)란?

인터넷 상에서 데이터를 안전하게 전송하기 위한 암호화 프로토콜이다. 웹사이트와 브라우저 간의 통신을 암호화하여 중간에 데이터가 유출되거나 변조되지 않도록 보호한다. SSL은 주로 웹사이트 주소 앞에 https://를 사용하여 나타낸다. 이는 해당 사이트와 사용자 간의 모든 통신이 암호화되었음을 의미한다.
📌 즉, 안전한 사이트입니다. 라고 인증하기 위해서 SSL 인증서를 적용해야한다.(HTTPS)

SSL 인증서 생성하기

SSL은 CA(Certificate Authority, 인증기관)에서 유료로 발급해주는 인증서로 보안 연결(https)을 가능하게 한다.
https의 보급을 위해 mozilla, cisco, chrome, meta, aws 등 다양한 기관에서 후원을 해 2016년에 Let's Encrypt 라는 이름의 무료 인증기관이 생겼다.

  1. Certbot 설치

    sudo apt update
    sudo apt install certbot

  2. Certbot을 어떤 방식으로 구동할지 선택(standalone)

    sudo certbot certonly --standalone
    본인 이메일 입력
    본인 도메인 입력

    📌 Congratulations가 뜨면 성공
    📌 etc/letsencrypt/live/도메인/경로에 fullchain.pem(인증서 파일)과 privkey.pem(비공개 키)이 발급 되었는지 확인

SSL 인증서 SpringBoot에 적용하기

  1. Spring Boot는 .p12 형식의 키스토어를 요구하기 때문에, openssl 명령어를 사용해 인증서를 .p12로 변환

    sudo openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name yourdomain

    📌 Enter Export Password가 나오는데 여기서 입력한 패스워드 기억하기

  2. 변환된 keystore.p12를 SpringBoot 프로젝트에 다음 경로로 옮기기

    src/main/resources/ssl/keystore.p12

    📌 ssl 디렉토리는 새로 만들기

  3. Spring Boot의 application.properties 또는 yml 파일 수정

    server.port=443
    server.ssl.enabled=true
    server.ssl.key-store-type=PKCS12
    server.ssl.key-store=classpath:ssl/keystore.p12
    server.ssl.key-store-password={1번에서 입력한 패스워드 입력}
    server.ssl.key-alias={도메인}

  4. 이제 애플리케이션 빌드하고 배포해서 https 붙으면 성공!





아직 학생이라 부족한 점이 있을 수 있습니다. 댓글과 피드백은 언제든지 환영입니다!


이미지 출처 : By Fabio Lanari - Internet1.jpg by Rock1997 modified., CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=20995390

profile
부족한 점이 많습니다. 피드백은 환영입니다!

0개의 댓글