개발/Spring Boot

[SpringBoot] 발급받은 타행 SSL인증서를 SpringBoot에 적용시키기

YJ_Lee 2022. 12. 10. 14:22

인증기관에서 발급받은 인증서 파일 목록

 

*.crt.pem: Base64 형태로 인코딩된 서버인증서

-----BEGIN CERTIFICATE-----

...
-----END CERTIFICATE-----

 

*.key.pem: Base64 형태로 인코딩된 개인키

-----BEGIN RSA PRIVATE KEY-----

...
-----END RSA PRIVATE KEY-----

 

 

 

openssl 에서 해당 파일들을 이용해 keystore 추출 가능

 

openssl [keystore의 파일 타입] -export -in [*.crt.pem 파일 경로] -inkey [*.key.pem 파일 경로] -out [생성될 파일 이름]

 

ex)

openssl pkcs12 -export -in myweb.com.crt.pem -inkey myweb.com.key.pem -out keystore.p12

실행하면 패스워드를 설정할 수 있으며, 이를 기억해놔야 한다.

 

 

SpringBoot의 application.yml

server:
  ssl:
    key-store: classpath:keystore.p12
    key-store-type: PKCS12
    key-store-password: ${sslpw}

key-store: 추출한 keystore 파일의 프로젝트 내 경로

key-store-type: openssl로 keystore 생성당시 선택한 암호화 파일 타입

key-store-password: openssl로 keystore 생성당시 설정한 패스워드

 

패스워드는 하드코딩 할 수 없으므로 java 실행옵션으로 받도록 하였다. 다른방식으로도 물론 가능

 

* 실행옵션으로 주입받기 

java -D[주입할 문자열 키]=[주입할 문자열 값] -jar [Executable JAR 경로]

ex)

java -Dsslpw=mypasswd -jar myweb.jar