이번 Spring Boot 애플리케이션에서 기존 Node.js에서 사용한 Let's Encrypt 인증서를 적용했다.
P12(Keystore) 형식으로 변환하여 Spring Boot의 application.properties
에 적용하면 된다.
인증서는 기존에 받은게 있어 재활용 할 예정이지만 나중에 보고 쓸수도 있으니 발급부터..certbot
을 이용하여 발급한다.
sudo certbot certonly --standalone -d yourdomain.com
발급이 완료되면 인증서와 키 파일이 생성되고 기본 경로는 다음과 같다.
/etc/letsencrypt/live/yourdomain.com/fullchain.pem
/etc/letsencrypt/live/yourdomain.com/privkey.pem
Spring Boot에서 인증서를 사용하려면 .p12
형식으로 변환해야 하는데 openssl
을 이용하여 변환할 수 있다.
openssl pkcs12 -export \
-inkey /etc/letsencrypt/live/yourdomain.com/privkey.pem \
-in /etc/letsencrypt/live/yourdomain.com/fullchain.pem \
-out keystore.p12 \
-name tomcat \
-CAfile chain.pem \
-caname root
비밀번호를 입력하라고 뜰텐데 원하는 비밀번호를 적어주면 된다.
생성한 keystore.p12
파일을 Spring Boot에서 사용하려면, application.properties
또는 application.yml
에 설정을 추가해야 한다.
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-type=PKCS12
server.ssl.key-store-password=지정한 비밀번호
keystore.p12
를 src/main/resources
에 위치시켜야 한다.