스프링부트 SSL

## 인증서 발급 방법 : [mkcert](https://ohhoonim.blogspot.com/2024/02/localhost-https-mkcert.html)

```
mkcert -install
mkcert "{domain}" 127.0.0.1 ::1

# 예) mkcert "*.example.com" 127.0.0.1 ::1
```

- pem과 key 파일이 생성된다.
	- _wildcard.example.com+2.pem
	- _wildcard.example.com+2-key.pem

###  crt 인증서와 p12 인증서의 주요 차이점
- crt - 인증서만 있는 형식. 확장자는 .crt, .cer 등이 사용됨
- p12 - 인증서와 개인키가 함께 있는 형식. 확장자는 주로 .p12, .pfx
- crt는 공개키와 인증서 정보만 포함합니다.
- p12는 공개키 인증서와 개인키를 하나의 파일에 저장합니다.
- crt 파일 하나로는 서버 인증서 설정이 불가능합니다. 반드시 개인키가 필요합니다.
- p12 파일 하나로 서버 인증서 설정이 가능합니다.
- crt는 보안에 덜 민감한 정보입니다. p12는 개인키가 있어 보안이 필요합니다.
- crt는 주로 공개 배포용으로 사용됩니다. p12는 개인이 보관하는 용도입니다.
결론적으로 crt는 인증서만 있고, p12는 인증서 + 개인키를 결합한 형식이라는 차이가 있습니다.

## 인증서 생성 방법
- 1. mkcert로 생성된 인증서 파일을 crt로 변환하여 브라우저에 CA 등록 
	- crt 인증서 생성법
		- crt 파일 생성 후 더블클릭하여 **신뢰할 수 있는 루트 인증 기관 저장소**에 인증서 저장(windows)

```
openssl rsa –in _wildcard.example.com+2-key.pem –text > _wildcard.example.com.key
openssl x509 –inform PEM –in _wildcard.example.com+2.pem –out _wildcard.herace.com.crt
```

- 2.  스프링부트에서 사용하기 위해 p12 인증서 생성
	- p12 인증서 생성하는 법

```
openssl pkcs12 -export -inkey _wildcard.example.com+2-key.pem -in _wildcard.example.com+2.pem -out _wildcard.example.com.p12
```

### [[스프링부트 SSL 번들]]
- 스프링부트 3.2 이상

### 참고문헌
- https://www.openssl.org/
- https://developer.mozilla.org/ko/docs/Glossary/TLS

댓글

이 블로그의 인기 게시물

Session 대신 JWT를 사용하는 이유

스프링 부트 개발자를 위한 유용한 VSCode 설정

osx 매버릭스에서 영문키 반복 입력되게 하기