localhost를 https 환경으로 만들기 : mkcert


## localhost의 https
- mkcert를 사용하면 localhost를 https로 동작시킬 수 있다. 
-  Github : https://github.com/FiloSottile/mkcert

## 사전지식
자바에서는 다음 두 가지 인증서 형식을 지원
- PKCS12 (Public Key Crytographic Standard #12) : 여러 인증서와 키를 포함할 수 있으며, 암호로 보호된 형식 (업계에서 널리 사용됨)
- JKS (Java KeyStore) : PKCS12와 유사. 독점 형식이며, Java 환경으로 제한
## 설정
- mkcert 문서를 참고하여 설치
```sh
# macos
$ brew install mkcert
$ brew install nss # firefox 사용 예정이라면 추가
```
- https를 적용할 프로젝트 최상위 디렉토리에서  다음 명령어 실행
```
$ mkcert -install
$ mkcert -pkcs12 localhost 127.0.0.1   # localhost.p12 파일 생성됨. 이걸 쓸거임

$ mkcert localhost                     # `*-key.pem`, `*.pem` 파일이 생성됨
```

- application.yml 에
```
server:
	port: 8080
	ssl:
		enabled: true
		key-store: classpath:cert/localhost.p12
		key-store-type: PKCS12
		key-store-password: changeit     # 비번 지정 안한경우 
	http2:
		enabled: true                    # openfeign 오류시
```

## 적용확인
- 브라우저에서 localhost로 접속한 후 자물쇠 모양 아이콘이 나타나는지 확인
## hosts 파일 변경해서 도메인처럼 사용하기
```
www.ohhoonim.dev 127.0.0.1s
```
- 다시한번더 mkcert 
```
$ mkcert -pkcs12 www.ohhoonim.dev
```
### 참고 링크
- https://mkcert.org
- https://www.npmjs.com/package/mkcert
- 블로그
	- 웹팩 이용한 방법 : https://yung-developer.tistory.com/112)
	- nodejs의 http모듈 이용한 방법 : https://xionwcfm.tistory.com/255
	- springboot에 적용하는 방법 : https://seungdols.tistory.com/994
	- nextjs에 적용한 방법 : https://hanyunseong-log.dev/post/nextjs-local-ssl
	- 쬐금더 내용이 많은거 : https://blog.sogoagain.com/posts/2020/https-using-mkcert/
	- react-springobot간 통신하기 : https://velog.io/@larvatus/react-%EC%99%80-spring-boot-%EA%B0%84%EC%9D%98-https%EB%A1%9C-%ED%85%8C%EC%8A%A4%ED%8A%B8%ED%95%98%EA%B8%B0

댓글

이 블로그의 인기 게시물

Session 대신 JWT를 사용하는 이유

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

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