본문 바로가기
서버 개발 (AWS, Linux, DevOps)

mkcert : 개발용 SSL 인증서 생성하기

by 번데기 개발자 2023. 9. 5.
반응형

 

개발용 SSL 인증서 

 

프론트엔드 개발을 Dev 환경에서 수행할 때 SSL 인증서가 필요한 경우가 있습니다. 예를 들어 Webpack Dev Server을 local 환경에서 구축하거나 Nginx를 local 환경으로 구축할 때 인증서가 필요합니다.

 

보통 SSL/TLS 인증서는 인증 기관(Certificate Authorities)이 있는 경우와 인증 기관이 없는 경우가 있는데요, 인증 기관이 있는 경우 공인 SSL 인증서라고 하며 줄여서 공인 CA 라고도 합니다., 인증 기관이 없는 경우 인증서의 경우 사설 SSL 인증서라고 하며 줄여서 사설 CA 라고 부르기도 합니다.

 

웹 사이트를 실제로 배포할때 SSL을 적용하는 경우에는 보안상으로 안전한 공인 SSL 인증서를 적용하여야 하지만, 개발용으로 테스트할 때에는 발급하지 않고 사설 SSL 인증서를 발급받아서 테스트를 하는 것도 좋은 방법입니다.

 

 

mkcert를 이용하여 개발용 사설 SSL 인증서 발급 받기

 

mkcert는 간단하게 로컬에 신뢰할 수 있는 인증서를 만드는 도구입니다. 이를 통해 복잡한 전문지식 없이 로컬환경을 CA(인증 기관)으로 설정하고 테스트를 할수 있도록 도와줍니다.

 

먼저 mkcert를 설치합니다. 저는 Mac 을 쓰기 때문에 brew 를 이용하여 설치해 보겠습니다.

 

# brew install mkcert
# mkcert -install // 로컬을 인증된 발급기관으로 추가

 

이후에 mkcert를 실행하면 되는데요 localhost 환경에서 인증되는 pem키를 생성하려면 아래와 같이 명령어를 입력해 줍니다.

 

# mkcert localhost // localhost cert 생성

 

이렇게 입력하면 localhost.pem 키와 localhost-key.pem 키를 확인하실 수 있습니다. 

 

localhost.pem키는 공개키로 모든 클라이언트에게 공개되며 해당 공개키는 클라이언트에서 데이터를 암호화에서 보내는 역할을 수행합니다. (보통 cert 인증서라고도 부릅니다.)

 

localhost-key.pem 키는 비밀키로 서버에서 보유하여야 하며 클라이언트로 들어오는 데이터를 해독하는 데 사용됩니다. (보통 그냥 key라고 부릅니다.)

 

mkcert -cert-file test.pem -key-file test-key.pem localhost 192.168.1.3

 

위와 같은 옵션을 사용해서 인증서 파일들을 생성할 수 있습니다.

 

--cert-file 옵션을 주어 cert 인증서 파일의 이름을 지정할 수 있고, --key-file 이라는 옵션을 주어 key 파일을 생성할 수도 있습니다. 또 뒤에 localhost 이외에 SSL 인증을 허용할 도메인이나 IP를 직접 설정할 수도 있습니다.

 

이후에 Nginx나 Webpack, Vite 등의 dev-server에서 옵션을 확인해서 SSL 인증서를 적용하면 됩니다.

 

 

 

마무리 

 

오늘은 mkcert 라는 도구를 통해 사설 SSL 인증서를 만드는 방법에 대해 한번 알아보았습니다.

 

사설 SSL 인증서를 이용하면  HTTPS 가 필요한 서비스들 (GPS기능, 카메라 기능) 을 테스트할 때 유용하게 쓰이는 것 같습니다. 

 

다음에도 유용한 주제로 포스팅하도록 하겠습니다. 

 

감사합니다.

 

 

 

출처 

- https://ubunlog.com/ko/mkcert-una-herramienta-para-crear-certificados-ssl-para-el-desarrollo-local/

- https://pstudio411.tistory.com/entry/%EC%9D%B8%EC%A6%9D%EC%84%9C-%EB%B0%9C%EA%B8%89-%EB%B0%9B%EA%B8%B0-%EC%9C%84%ED%95%9C-mkcert

반응형