Ubuntu Server에서 Apache와 함께 Let’s Encrypt를 사용하는 방법

Ubuntu 서버에서 Let’s Encrypt를 이용한 Apache SSL 설정 가이드

많은 사용자들이 Linux 환경에서 SSL 인증서 설정의 복잡성 때문에 웹사이트에 HTTPS 적용을 꺼려합니다. 하지만 Let’s Encrypt 서비스의 등장으로 누구나 쉽게 Linux에서 SSL을 설정할 수 있게 되었습니다. 특히 Ubuntu 서버에서는 Apache와 함께 Let’s Encrypt를 사용하여 SSL 인증서를 간편하게 설정할 수 있습니다.

Let’s Encrypt는 Linux 사용자에게 영구적으로 무료로 제공되는 서비스입니다. 하지만 인증서의 유효 기간이 90일로 제한되어 있어, 사용자들은 주기적으로 인증서를 갱신해야 합니다.

Let’s Encrypt 소프트웨어는 Apache와 Nginx와 같은 주요 웹 엔진을 모두 지원합니다. 이 가이드에서는 Ubuntu 서버에서 Apache와 함께 Let’s Encrypt를 사용하여 SSL 인증서를 얻고 설정하는 방법을 자세히 안내합니다.

참고: Let’s Encrypt는 다양한 Linux 운영 체제를 지원합니다. Ubuntu 서버를 사용하지 않는 경우, 여기를 클릭하여 다른 서버 운영 체제에서의 설정 방법을 알아보세요.

Certbot 설치하기

Let’s Encrypt는 Certbot 도구를 통해 Linux에서 대부분의 설정 과정을 자동화합니다. 이를 통해 Ubuntu 서버에서 SSL 인증서를 빠르고 쉽게 발급받을 수 있습니다.

Certbot은 Ubuntu 서버에 기본적으로 설치되어 있지 않으므로, 타사 PPA(소프트웨어 저장소)를 활성화하여 설치해야 합니다. PPA를 추가하기 전에, 모든 Ubuntu 서버 버전이 기본적으로 PPA를 지원하는 것은 아닙니다. 따라서 Ubuntu에서 PPA에 접근하려면 software-properties-common 패키지를 먼저 설치해야 합니다.

sudo apt install software-properties-common

software-properties-common 패키지가 설치되면, 다음 명령을 실행하여 Certbot 리포지토리를 Ubuntu에 추가합니다.

sudo add-apt-repository ppa:certbot/certbot

add-apt-repository 명령 실행 후, PPA가 활성화됩니다. 그 다음, 다음 명령을 사용하여 Ubuntu 서버의 소프트웨어 소스를 업데이트하여 Certbot PPA에 접근할 수 있도록 합니다.

sudo apt update

이제 소프트웨어 소스를 최신 상태로 유지하고, Apt를 사용하여 Certbot 패키지를 설치합니다.

sudo apt install python3-certbot-apache

HTTPS 트래픽 활성화

Let’s Encrypt는 Linux에서 SSL 인증서를 쉽게 설정할 수 있도록 도와주므로, 수동으로 복잡한 과정을 거칠 필요가 없습니다. 이 서비스를 사용하기 위한 사전 단계 중 하나는 Apache 2 웹 서버에서 HTTPS 트래픽을 허용하는 것입니다.

Apache 웹 서버에서 HTTPS 트래픽을 활성화하려면, Ubuntu 방화벽이 실행 중인지 확인해야 합니다. 그 다음, 아래의 UFW 명령을 사용하여 HTTPS 트래픽을 허용하십시오.

참고: 방화벽이 실행되고 있지 않다면, ‘sudo ufw enable’ 명령을 실행한 후 시스템을 재부팅하십시오.

sudo ufw allow 'Apache Full'

UFW 명령이 성공적으로 실행되면 HTTPS가 활성화됩니다. ‘sudo ufw status’ 명령을 실행하여 방화벽 상태를 확인하고 방화벽이 제대로 작동하는지 확인할 수 있습니다.

sudo ufw status

SSL 인증서 생성

이제 Ubuntu 서버에서 SSL을 사용할 준비가 되었고 Certbot도 설치되었습니다. 이 시점에서 Certbot 프로그램을 사용하여 Apache 웹 서버에 대한 새로운 SSL 인증서를 생성할 수 있습니다.

Certbot을 사용하여 새 SSL 인증서를 생성하려면, ‘apache’ 명령줄 스위치와 함께 certbot을 실행하십시오. 이 인증서는 명령에 지정된 도메인이 ‘/etc/apache2/sites-available/’ 디렉토리에 있는 웹사이트 구성 파일과 일치하는 경우에만 작동합니다.

참고: Certbot 명령에서 ‘mywebsite.com’ 및 ‘www.mywebsite.com’을 사용자의 실제 도메인 이름으로 변경해야 합니다.

sudo certbot --apache -d mywebsite.com -d www.mywebsite.com

Certbot 명령이 성공적으로 실행되면, Apache 설정에 대한 프롬프트가 표시됩니다. 프롬프트 내용을 주의 깊게 읽고 사용자 요구에 맞는 옵션을 선택하십시오. 프롬프트 과정을 완료하면 SSL 인증서가 발급되어 사용할 준비가 됩니다.

SSL 인증서 갱신

Let’s Encrypt의 SSL 인증서는 90일 후에 만료되므로, 웹사이트를 계속 운영하려면 주기적인 갱신이 필요합니다. 다행히도 Certbot 프로그램에는 자동 갱신을 위한 Cron 작업이 포함되어 있습니다.

자동 갱신 Cron 스크립트는 서버의 ‘/etc/cron.d/’ 디렉토리에 있으며, 다음 명령을 통해 확인할 수 있습니다.

수동 갱신

Let’s Encrypt의 자동 갱신 스크립트 덕분에, Apache 서버는 SSL 인증서를 항상 유지할 수 있습니다. 하지만, 때로는 문제가 발생할 수 있으므로 수동으로 SSL 인증서를 갱신하는 방법을 알아두는 것이 좋습니다.

Ubuntu 서버에서 Apache SSL 인증서를 수동으로 갱신하려면, SSH를 통해 터미널 창을 열고 다음 단계를 따르십시오.

1단계: 테스트 실행 명령 스위치를 사용하여 certbot 갱신 명령을 실행합니다. 이 단계를 통해 문제점을 파악하고 갱신 프로세스가 제대로 작동하는지 확인할 수 있습니다.

sudo certbot renew --dry-run

2단계: ‘테스트 실행’이 성공적으로 완료되었다면, Certbot의 갱신 명령을 실제로 실행해도 안전합니다. 터미널에서 ‘–dry-run’ 스위치 없이 certbot 갱신 명령을 실행합니다.

sudo certbot renew

갱신 명령이 성공적으로 완료되면, SSL 인증서가 다시 활성화됩니다.