목차
1. 인증서 변환
- 필자는 .pem파일을 보유 중이므로 pem 파일을 openssl을 이용해 .p12(PKCS12)파일로 변환하겠습니다.
- 필자는 윈도우 환경에서 powershell을 활용했습니다.
[변환 전 보유 중인 파일]
[PEM -> PKCS12]
openssl pkcs12 -inkey [privatekey] -in [certificate] -export -out [출력할 파일명]
= openssl pkcs12 -inkey key.pem -in cert.pem -export -out spring_key.p12
PS C:\Users\Desktop\cert_key> ls
디렉터리: C:\Users\Desktop\cert_key
Mode LastWriteTime Length Name
---- ------------- ------ ----
------ 2021-11-23 오후 3:12 5613 cert.pem
------ 2021-11-23 오후 3:12 1679 key.pem
PS C:\Users\Desktop\cert_key> openssl
OpenSSL> pkcs12 -inkey key.pem -in cert.pem -export -out spring_key.p12
Enter Export Password:
Verifying - Enter Export Password:
OpenSSL> exit
PS C:\Users\guswn\Desktop\cert_key> ls
디렉터리: C:\Users\Desktop\cert_key
Mode LastWriteTime Length Name
---- ------------- ------ ----
------ 2021-11-23 오후 3:12 5613 cert.pem
------ 2021-11-23 오후 3:12 1679 key.pem
-a---- 2021-11-23 오후 10:19 5709 spring_key.p12
2. 추가
- 변환으로 나온 PKCS12 파일을 스프링 부트 프로젝트에 포함시킵니다.
- 프로젝트 내에 포함시킬 경우 따로 경로를 지정하지 않아도 됩니다.
3. application.properties
- SSL(TLS) 적용을 위해 Spring Boot application.properties 파일에 추가합니다.
- 보안을 위해 TLS 1.2 프로토콜을 사용합니다.
- SSL 권장 알고리즘을 적용했습니다.(ciphers)
server.port=8443
server.ssl.enabled=true
server.ssl.key-store-type=PKCS12
server.ssl.key-store-password=패스워드
server.ssl.protocol=TLS
server.ssl.enabled-protocols=TLSv1.2
# [server.ssl.key-store] 스프링 부트 프로젝트 내에 파일을 포함시키지 않았을 경우 .p12 파일 경로를 지정합니다.
# server.ssl.key-store=/root/spring_key.p12
server.ssl.key-store=spring_key.p12
server.ssl.ciphers=ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHERSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384
4. 적용 결과
- Spring Boot 실행 시 https로 시작이 잘 되는 것을 확인할 수 있습니다.
- 서버에 배포 후 브라우저를 통해 https 가 잘 적용된 것을 확인할 수 있습니다.
- http:url로 접근 시 접근이 되질 않습니다. http로도 접근을 원한다면 다중 커넥터 설정을 해야 합니다.
'Backend > Spring' 카테고리의 다른 글
[Spring Boot] 스프링 부트 필터 적용 (Filter) (0) | 2021.11.29 |
---|---|
[Spring Boot] 스프링 부트 인터셉터 적용 (HandlerInterceptor) (0) | 2021.11.28 |
[Spring] Lombok 자동 생성자 생성 (@AllArgsConstructor, @RequiredArgsConstructor) (0) | 2021.11.25 |
[Spring Boot] 스프링 부트 SQL 로그 설정 (Log4jdbc) (0) | 2021.11.23 |
[Spring Boot] 스프링 부트 로그 설정 (log4j2) (0) | 2021.11.22 |