웹사이트 검색

Ubuntu 20.04에서 mkcert를 사용하여 로컬에서 신뢰할 수 있는 SSL 인증서를 만드는 방법


이 페이지에서

  1. 전제 조건
  2. 시작하기\n
  3. Mkcert 설치
  4. 로컬 CA 생성
  5. 로컬 웹사이트용 인증서 생성
  6. 생성된 인증서를 사용하도록 Nginx 구성\n
  7. 도메인의 SSL 확인\n
  8. 결론

Mkcert는 실제 CA에서 구매하지 않고도 로컬에서 신뢰할 수 있는 인증서를 생성할 수 있는 간단하고 매우 유용한 무료 도구입니다. 개발자는 일반적으로 로컬 시스템에서 작업하며 localhost에서 CA의 신뢰할 수 있는 인증서를 사용하는 것은 항상 불가능합니다. Mkcert를 사용하면 번거로움 없이 자신의 인증서를 관리할 수 있습니다.

이 게시물에서는 Ubuntu 20.04에서 Mkcert를 사용하여 로컬 개발을 위해 신뢰할 수 있는 SSL 인증서를 만드는 방법을 보여줍니다.

전제 조건

  • Ubuntu 20.04 데스크탑을 실행하는 시스템.\n
  • 루트 암호는 서버에서 구성됩니다.\n

시작하기

먼저 다음 명령을 실행하여 시스템 패키지를 업데이트된 버전으로 업데이트합니다.

apt-get update -y

모든 패키지가 업데이트되면 다음 단계로 진행할 수 있습니다.

MKcert 설치

Mkcert 유틸리티를 설치하기 전에 필요한 패키지를 서버에 설치해야 합니다. 다음 명령으로 설치할 수 있습니다.

apt-get install wget libnss3-tools

모든 패키지가 설치되면 Github에서 최신 버전의 Mkcert를 다운로드합니다.

wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64

Mkcert를 다운로드한 후 다운로드한 바이너리를 시스템 경로로 이동합니다.

mv mkcert-v1.4.3-linux-amd64 /usr/bin/mkcert

다음으로 mkcert에 대한 실행 권한을 설정합니다.

chmod +x /usr/bin/mkcert

다음으로 다음 명령을 사용하여 Mkcert 버전을 확인합니다.

mkcert --version

다음 출력이 표시되어야 합니다.

v1.4.3

로컬 CA 생성

이제 다음 명령을 실행하여 로컬 CA 인증서를 생성합니다.

mkcert -install

다음 출력이 표시되어야 합니다.

Created a new local CA ????
The local CA is now installed in the system trust store! ??
The local CA is now installed in the Firefox and/or Chrome/Chromium trust store (requires browser restart)! ????

다음 명령을 사용하여 CA 인증서의 경로를 확인할 수 있습니다.

mkcert -CAROOT

다음 출력이 표시되어야 합니다.

/root/.local/share/mkcert

로컬 웹사이트용 인증서 생성

다음으로 다음 명령을 사용하여 로컬에서 호스팅되는 웹 사이트에 대한 인증서 및 키 파일을 생성할 수 있습니다.

mkcert app.example.com localhost 127.0.0.1 ::1

다음 출력이 표시되어야 합니다.

Created a new certificate valid for the following names ????
 - "app.example.com"
 - "localhost"
 - "127.0.0.1"
 - "::1"

The certificate is at "./app.example.com+3.pem" and the key at "./app.example.com+3-key.pem" ?

It will expire on 1 November 2023 ????

생성된 인증서를 사용하도록 Nginx 구성

다음으로 생성된 인증서를 사용하도록 Nginx 웹 서버를 구성해야 합니다.

먼저 생성된 인증서 파일을 /etc/ssl/ 디렉터리에 복사합니다.

cp app.example.com+3* /etc/ssl/

다음으로 Nginx 웹 루트 디렉터리에 적절한 소유권을 설정합니다.

chown -R www-data:www-data /var/www/html/

다음으로 다음 명령을 사용하여 Nginx 가상 호스트 구성 파일을 만듭니다.

nano /etc/nginx/conf.d/app.conf

다음 줄을 추가합니다.

server {
   listen 80;
   server_name app.example.com;
   root /var/www/html;
}

server {
   listen *:443 ssl;
   root /var/www/html;
   server_name app.example.com;
   ssl_certificate /etc/ssl/app.example.com+3.pem; 
   ssl_certificate_key /etc/ssl/app.example.com+3-key.pem;
}

완료되면 파일을 저장하고 닫은 다음 Nginx에서 구문 오류를 확인합니다.

nginx -t

다음 출력이 표시되어야 합니다.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

그런 다음 Nginx 서비스를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart nginx

다음으로 /etc/hosts 파일을 편집하고 app.example.com을 시스템 IP 주소에 바인딩합니다.

nano /etc/hosts

다음 줄을 추가합니다.

your-server-ip app.example.com

도메인의 SSL 확인

이제 웹 브라우저를 열고 URL https://app.example.com을 입력합니다. 도메인이 Mkcert로 보호되는 것을 볼 수 있습니다.

이제 잠금 아이콘을 클릭합니다. 다음 페이지에서 인증서에 대한 정보를 볼 수 있습니다.

결론

축하합니다! Mkcert를 성공적으로 설치했으며 로컬 개발을 위해 신뢰할 수 있는 CA 인증서를 생성했습니다. 개발 환경에만 Mkcert를 사용하는 것이 좋습니다. 프로덕션 환경에는 권장되지 않습니다.