본문 바로가기

윈도우에서 mkcert를 활용한 로컬 HTTPS 인증서 발급 방법

|||||||||||||| 2024. 6. 29.

윈도우 환경에서 로컬 개발을 진행할 때 안전한 HTTPS 연결을 설정하는 것은 매우 중요합니다. 이를 위해 간단하고 편리한 도구인 mkcert를 사용할 수 있습니다. 이 글에서는 mkcert가 무엇인지, 어떻게 설치하고 활용할 수 있는지, 그리고 Node.js에서 HTTPS 서버를 설정하는 방법까지 상세히 안내합니다. mkcert를 통해 로컬 환경에서 신뢰할 수 있는 인증서를 손쉽게 생성하고 안전한 개발 환경을 구축해보세요.

윈도우에서 mkcert를 활용한 로컬 HTTPS 인증서 발급 방법

안녕하세요, 이번 글에서는 mkcert를 활용한 로컬 인증서 발급 방법과 Node.js HTTPS 서버 설정 방법에 대해 알아보겠습니다. 개발자 여러분께 많은 도움이 되길 바랍니다.

mkcert란? 로컬 개발 환경을 위한 간편한 인증서 생성 도구

mkcert는 로컬 개발 환경에서 신뢰할 수 있는 인증서를 손쉽게 생성할 수 있는 도구입니다. 이 도구는 간단한 설정만으로 다양한 도메인에 맞는 인증서를 발급할 수 있어 개발자들에게 매우 유용합니다. Chocolatey나 Scoop 같은 패키지 매니저를 통해 손쉽게 설치할 수 있습니다. mkcert의 주요 장점은 다음과 같습니다:

  • 간편한 설치 및 설정: 복잡한 설정 과정 없이 몇 가지 명령어만으로 설치와 설정이 완료됩니다.
  • 다양한 도메인 지원: 특정 도메인뿐만 아니라 로컬 IP 주소 및 localhost와 같은 일반적인 개발 환경에서도 사용할 수 있습니다.
  • 자동 갱신: 인증서를 쉽게 갱신할 수 있어 유지 관리가 용이합니다.

mkcert는 이러한 장점을 통해 개발자들이 로컬 환경에서 HTTPS를 쉽게 설정하고 테스트할 수 있도록 도와줍니다. 이를 통해 실제 배포 환경에서 발생할 수 있는 문제를 사전에 방지하고, 보다 안전한 웹 애플리케이션을 개발할 수 있습니다.

Chocolatey로 mkcert 설치하기

Chocolatey는 윈도우용 패키지 매니저로, mkcert 설치를 간편하게 도와줍니다. PowerShell을 관리자 권한으로 실행한 후 'choco install mkcert' 명령어를 입력하여 mkcert를 설치할 수 있습니다. 설치가 완료되면, 'mkcert -install' 명령어를 사용해 로컬 인증서를 설정합니다. 다음은 설치 과정의 자세한 단계입니다:

  • PowerShell 관리자 권한 실행: Windows 검색 창에서 'PowerShell'을 검색한 후, 마우스 오른쪽 버튼을 클릭하여 '관리자 권한으로 실행'을 선택합니다.
  • Chocolatey로 mkcert 설치: PowerShell 창에서 아래 명령어를 입력합니다.
choco install mkcert

 

이와 같이 간단한 과정으로 mkcert를 설치하고 초기 설정을 완료할 수 있습니다. 이후에는 다양한 도메인에 맞는 인증서를 손쉽게 생성할 수 있습니다.

mkcert로 로컬 인증서 발급하기

mkcert를 통해 로컬 인증서를 발급하는 방법은 매우 간단합니다. 다음과 같은 명령어를 입력하여 필요한 인증서를 생성할 수 있습니다:

  • 로컬 인증서 설치:
mkcert -install

 

위 명령어를 입력하면 보안 경고창이 나타납니다. 예를 클릭해 인증서를 설치합니다.

 

  • localhost를 위한 인증서 생성:
mkcert -key-file key.pem -cert-file cert.pem localhost

 

위 명령어를 실행하면 로컬 환경에서 사용할 수 있는 인증서 파일이 생성됩니다. 생성된 인증서 파일은 일반적으로 'key.pem'과 'cert.pem'이라는 이름으로 저장됩니다. 이러한 인증서 파일을 사용하여 로컬 개발 환경에서 HTTPS 연결을 쉽게 설정할 수 있습니다.

또한, mkcert는 다양한 도메인을 지원하므로, 필요에 따라 특정 도메인에 맞는 인증서를 생성할 수 있습니다. 예를 들어, 'mkcert mydomain.dev' 명령어를 사용하여 'mydomain.dev' 도메인을 위한 인증서를 생성할 수 있습니다. 이처럼 mkcert를 통해 로컬 개발 환경에서 신뢰할 수 있는 인증서를 손쉽게 발급받아 사용해보세요.

Node.js에서 HTTPS 서버 설정하기

생성된 인증서를 사용하여 Node.js에서 HTTPS 서버를 설정할 수 있습니다. 'key.pem'과 'cert.pem' 파일을 사용하여 다음과 같은 코드를 작성합니다:

const https = require('https');
const fs = require('fs');
const path = require('path');

const options = {
  key: fs.readFileSync(path.join(__dirname, 'key.pem')),
  cert: fs.readFileSync(path.join(__dirname, 'cert.pem'))
};

https.createServer(options, (req, res) => {
  res.writeHead(200);
  res.end('Hello, world!');
}).listen(3001, () => {
  console.log('HTTPS server running on https://localhost:3001');
});


이 코드는 기본적인 HTTPS 서버를 설정하는 예제입니다. 생성된 인증서 파일('key.pem'과 'cert.pem')을 읽어와서 HTTPS 서버를 설정합니다. 서버가 정상적으로 실행되면, 브라우저에서 'https://localhost:3001'로 접속하여 HTTPS 연결이 정상적으로 이루어지는지 확인할 수 있습니다.

이 과정에서 중요한 점은, 인증서 파일의 경로를 정확하게 지정하는 것입니다. 인증서 파일이 저장된 경로를 정확히 확인하고, 코드에서 해당 경로를 올바르게 설정해야 합니다. 그렇지 않으면 파일을 찾지 못해 서버 실행에 실패할 수 있습니다.

mkcert 사용 시 유의할 점

mkcert를 사용할 때는 몇 가지 주의사항을 염두에 두어야 합니다. 생성된 'key.pem' 파일은 개인 키이므로 외부에 유출되지 않도록 주의해야 합니다. 개인 키가 유출되면 보안에 심각한 문제가 발생할 수 있으므로, 안전한 위치에 보관하고 접근 권한을 제한해야 합니다.

또한, mkcert는 로컬 개발 환경에서 사용하기 위해 설계된 도구입니다. 실제 배포 환경에서는 신뢰할 수 있는 인증 기관(CA)에서 발급한 인증서를 사용해야 합니다. mkcert로 생성한 인증서는 로컬 환경에서만 신뢰할 수 있으며, 실제 배포 환경에서는 신뢰되지 않을 수 있습니다.

마지막으로, mkcert를 사용하여 생성한 인증서는 자동 갱신되지 않습니다. 따라서, 인증서의 유효 기간이 만료되기 전에 주기적으로 갱신해주는 것이 중요합니다. 이 점을 유의하여 mkcert를 사용하면 보다 안전하고 효율적인 로컬 개발 환경을 구축할 수 있습니다.

맺음말

이 글에서는 Windows 환경에서 mkcert를 활용하여 로컬 인증서를 발급하고, Node.js HTTPS 서버를 설정하는 방법을 자세히 알아보았습니다. mkcert는 간편한 설치와 다양한 도메인 지원을 통해 개발자들에게 많은 도움이 되는 도구입니다. 또한, 로컬 환경에서 HTTPS 연결을 설정함으로써 보다 안전한 개발 환경을 구축할 수 있습니다. mkcert를 활용하여 여러분의 개발 환경을 더욱 효율적이고 안전하게 만들어보세요.

문답

Q. mkcert란 무엇인가요?

A. mkcert는 로컬 개발 환경에서 신뢰할 수 있는 인증서를 손쉽게 생성할 수 있는 도구입니다.

Q. Chocolatey로 mkcert를 설치하려면 어떻게 하나요?

A. PowerShell을 관리자 권한으로 실행한 후 'choco install mkcert' 명령어를 입력하여 설치할 수 있습니다.

Q. mkcert로 로컬 인증서를 어떻게 발급하나요?

A. 'mkcert -install' 명령어로 로컬 인증서를 설치한 후, 'mkcert localhost' 명령어로 localhost를 위한 인증서를 생성할 수 있습니다.

Q. Node.js에서 HTTPS 서버를 설정하려면 어떻게 하나요?

A. 생성된 'key.pem'과 'cert.pem' 파일을 사용하여 Node.js에서 HTTPS 서버를 설정할 수 있습니다. 예제 코드를 참고하여 설정해보세요.

Q. mkcert 사용 시 주의해야 할 점은 무엇인가요?

A. 생성된 'key.pem' 파일은 개인 키이므로 유출되지 않도록 주의해야 하며, 로컬 환경에서만 사용해야 합니다. 실제 배포 환경에서는 신뢰할 수 있는 인증 기관의 인증서를 사용해야 합니다.