Ubuntu 20.04에서 mkcert를 사용하여 로컬에서 신뢰할 수 있는 SSL 인증서를 만드는 방법
이 페이지에서
- 전제 조건
- 시작하기\n
- Mkcert 설치
- 로컬 CA 생성
- 로컬 웹사이트용 인증서 생성
- 생성된 인증서를 사용하도록 Nginx 구성\n
- 도메인의 SSL 확인\n
- 결론
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를 사용하는 것이 좋습니다. 프로덕션 환경에는 권장되지 않습니다.