*.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
'개발 > Spring Boot' 카테고리의 다른 글
[Spring Boot] Spring cache 를 사용해 보자 (1) | 2024.02.07 |
---|---|
[Spring Boot] Spring Boot Application 을 재시작해도 Spring cache가 초기화 되지 않는 문제 해결 (0) | 2024.02.07 |
[ModelMapper] 필드 타입이 다른 두 객체간 매핑 커스텀하기 (0) | 2023.12.02 |