웹사이트 검색

Ubuntu 14.04에서 여러 Apache 가상 호스트에 대한 Let’s Encrypt 인증서를 설정하는 방법


소개

SSL 인증서는 웹 서버 내에서 사용되어 서버와 클라이언트 간의 트래픽을 암호화하여 애플리케이션에 액세스하는 사용자에게 추가 보안을 제공합니다. Let’s Encrypt는 무료로 신뢰할 수 있는 인증서를 얻고 설치하는 쉬운 방법을 제공합니다.

이 튜토리얼은 Ubuntu 14.04 서버 내에서 Apache의 여러 가상 호스트를 보호하기 위해 Let's Encrypt에서 TLS/SSL 인증서를 설정하는 방법을 보여줍니다.

또한 cron 작업을 사용하여 인증서 갱신 프로세스를 자동화하는 방법도 다룹니다.

##전제 조건

이 가이드를 완료하려면 다음이 필요합니다.

  • 초기 서버 설정 가이드에 따라 설정할 수 있는 루트가 아닌 sudo 사용자가 있는 Ubuntu 14.04 서버
  • 여러 가상 호스트를 호스팅하는 작동하는 Apache 웹 서버 설치

각 가상 호스트는 별도의 자체 구성 파일에 설정되고 브라우저를 통해 외부에서 액세스할 수 있다는 것이 중요합니다. Ubuntu에서 Apache 가상 호스트를 올바르게 설정하는 방법에 대한 자세한 안내를 보려면 이 링크를 따르십시오.

이 가이드의 목적을 위해 도메인 example.comtest.com에 대한 Let’s Encrypt 인증서를 설치합니다. 이들은 가이드 전체에서 참조되지만 따라가는 동안 자신의 도메인으로 대체해야 합니다.

계속 진행할 준비가 되면 sudo 계정을 사용하여 서버에 로그인합니다.

##1단계 — Let’s Encrypt 클라이언트 다운로드

SSL 인증서를 얻기 위해 Let’s Encrypt를 사용하는 첫 번째 단계는 서버에 certbot 소프트웨어를 설치하는 것입니다. Certbot 개발자는 최신 버전의 소프트웨어로 자체 Ubuntu 소프트웨어 저장소를 유지 관리합니다. Certbot은 매우 활발하게 개발 중이기 때문에 이 저장소를 사용하여 Ubuntu에서 제공하는 것보다 최신 Certbot을 설치할 가치가 있습니다.

먼저 저장소를 추가합니다.

  1. sudo add-apt-repository ppa:certbot/certbot

동의하려면 ENTER를 눌러야 합니다. 그런 다음 패키지 목록을 업데이트하여 새 리포지토리의 패키지 정보를 선택합니다.

  1. sudo apt-get update

마지막으로 apt-get을 사용하여 새 저장소에서 Certbot을 설치합니다.

  1. sudo apt-get install python-certbot-apache

이제 certbot Let’s Encrypt 클라이언트를 사용할 준비가 되었습니다.

##2단계 - 인증서 설정

certbot Let’s Encrypt 클라이언트를 사용하여 Apache용 SSL 인증서를 생성하는 것은 매우 간단합니다. 클라이언트는 매개변수로 제공된 도메인에 유효한 새 SSL 인증서를 자동으로 가져와 설치합니다.

여러 Let's Encrypt 인증서를 함께 묶을 수 있지만 도메인 이름이 다른 경우에도 고유한 도메인 이름에 대해 별도의 인증서를 만드는 것이 좋습니다. 일반적으로 특정 도메인의 하위 도메인만 함께 묶어야 합니다.

###첫 번째 SSL 인증서 생성

첫 번째 가상 호스트인 example.com에 SSL 인증서를 설정하는 것으로 시작하겠습니다.

대화식 설치를 실행하고 도메인 및 하위 도메인, 즉 기본 도메인으로 example.com 및 하위 도메인으로 www.example.com에 유효한 번들 인증서를 얻습니다. . 현재 Apache 설정에서 가상 호스트 또는 별칭으로 구성된 추가 하위 도메인을 포함할 수 있습니다.

다음을 사용하여 certbot 명령을 실행합니다.

  1. sudo certbot --apache -d example.com -d www.example.com

매개변수 목록의 첫 번째 도메인 이름은 인증서를 생성하기 위해 Let's Encrypt에서 사용하는 기본 도메인이 됩니다. 따라서 목록의 첫 번째로 기본 최상위 도메인 이름을 전달하고 그 뒤에 임의의 이름을 전달하는 것이 좋습니다. 추가 하위 도메인 또는 별칭.

이 예에서 기본 도메인은 example.com입니다.

종속성이 설치되면 인증서 옵션을 사용자 지정하기 위한 단계별 가이드가 제공됩니다. 분실된 키 복구 및 알림을 위한 이메일 주소를 제공하라는 메시지가 표시되며 httphttps 액세스를 모두 활성화하거나 모든 요청을 강제로 리디렉션하도록 선택할 수 있습니다. https로.

설치가 완료되면 /etc/letsencrypt/live에서 생성된 인증서 파일을 찾을 수 있어야 합니다. 다음 링크를 사용하여 SSL 인증서의 상태를 확인할 수 있습니다(example.com을 기본 도메인으로 바꾸는 것을 잊지 마십시오).

https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest

이제 https 접두사를 사용하여 웹사이트에 액세스할 수 있습니다.

두 번째 SSL 인증서 생성

추가 가상 호스트에 대한 인증서 생성은 이전 단계에서 설명한 것과 동일한 프로세스를 따라야 합니다.

이제 Let's Encrypt로 보호하려는 두 번째 가상 호스트에서 인증서 설치 명령을 반복합니다.

  1. sudo certbot --apache -d test.com -d www.test.com

이 예에서 기본 도메인은 test.com입니다.

다시 한 번 다음 링크를 사용하여 SSL 인증서의 상태를 확인할 수 있습니다(test.com을 기본 도메인으로 바꾸는 것을 잊지 마십시오).

https://www.ssllabs.com/ssltest/analyze.html?d=test.com&latest

추가 가상 호스트에 대한 인증서를 생성하려면 프로세스를 반복하기만 하면 됩니다. 베어 최상위 도메인을 기본 도메인으로 사용하는 것을 잊지 마십시오.

##3단계 — 자동 갱신 설정

Let’s Encrypt의 인증서는 90일 동안만 유효합니다. 이는 사용자가 인증서 갱신 프로세스를 자동화하도록 권장하기 위한 것입니다. 만료되는 인증서를 확인하고 자동으로 갱신하려면 정기적으로 실행되는 명령을 설정해야 합니다.

갱신 확인을 매일 실행하기 위해 주기적 작업 실행을 위한 표준 시스템 서비스인 cron을 사용합니다. 우리는 crontab이라는 파일을 열고 편집하여 cron에게 해야 할 일을 알려줍니다.

  1. sudo crontab -e

텍스트 편집기는 일부 도움말 텍스트가 포함된 텍스트 파일인 기본 crontab을 엽니다. 파일 끝에 다음 줄을 붙여넣은 다음 저장하고 닫습니다.

. . .
15 3 * * * /usr/bin/certbot renew --quiet

이 줄의 15 3 * * * 부분은 "매일 오전 3:15에 다음 명령 실행\을 의미합니다. 언제든지 선택할 수 있습니다.

Certbot의 갱신 명령은 시스템에 설치된 모든 인증서를 확인하고 30일 이내에 만료되도록 설정된 인증서를 업데이트합니다. --quiet는 Certbot이 정보를 출력하거나 사용자 입력을 기다리지 않도록 지시합니다.

cron은 이제 이 명령을 매일 실행합니다. --apache 플러그인을 사용하여 인증서를 설치했기 때문에 새 인증서가 사용되도록 Apache도 다시 로드됩니다.

cron 작업을 생성하고 예약하는 방법에 대한 자세한 내용은 VPS 가이드에서 Cron을 사용하여 작업을 자동화하는 방법을 확인할 수 있습니다.

##결론

이 가이드에서는 Apache에서 여러 가상 호스트를 보호하기 위해 Let's Encrypt에서 무료 SSL 인증서를 설치하는 방법을 살펴보았습니다. 공식 Let’s Encrypt 블로그에서 수시로 중요한 업데이트를 확인하는 것이 좋습니다.