웹사이트 검색

Ubuntu 16.04에서 Let's Encrypt로 Apache를 보호하는 방법


소개

이 튜토리얼에서는 Apache를 웹 서버로 실행하는 Ubuntu 16.04 서버에서 Let's Encrypt의 TLS/SSL 인증서를 설정하는 방법을 보여줍니다.

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

전제 조건

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

  • 초기 서버 설정 가이드에 따라 설정할 수 있는 루트가 아닌 sudo 사용 사용자가 있는 Ubuntu 16.04 서버
  • ServerName을 지정하는 가상 호스트를 통해 적절하게 구성된 하나 이상의 도메인 이름과 함께 설치된 Apache 웹 서버.

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

1단계 - Let’s Encrypt 클라이언트 설치

Let's Encrypt 인증서는 서버에서 실행되는 클라이언트 소프트웨어를 통해 가져옵니다. 공식 클라이언트는 Certbot이라고 하며 개발자는 최신 버전으로 자체 Ubuntu 소프트웨어 저장소를 유지 관리합니다. Certbot이 활발하게 개발 중이기 때문에 이 저장소를 사용하여 Ubuntu가 기본적으로 제공하는 것보다 최신 버전을 설치할 가치가 있습니다.

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

  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단계 - SSL 인증서 설정

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

대화식 설치를 실행하고 단일 도메인에만 적용되는 인증서를 얻으려면 다음과 같이 certbot 명령을 실행하십시오. 여기서 example.com은 귀하의 도메인입니다.

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

여러 도메인 또는 하위 도메인에 유효한 단일 인증서를 설치하려는 경우 추가 매개변수로 명령에 전달할 수 있습니다. 매개변수 목록의 첫 번째 도메인 이름은 인증서를 생성하기 위해 Let's Encrypt에서 사용하는 기본 도메인이 되므로 목록의 첫 번째로 기본 최상위 도메인 이름을 전달하고 그 뒤에 추가 하위 도메인을 전달하는 것이 좋습니다. 또는 별칭:

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

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

가상 호스트가 여러 개인 경우 각각에 대해 certbot을 한 번씩 실행하여 각각에 대한 새 인증서를 생성해야 합니다. 어떤 방식으로든 가상 호스트 전체에 여러 도메인과 하위 도메인을 배포할 수 있습니다.

종속성이 설치되면 인증서 옵션을 사용자 지정하기 위한 단계별 가이드가 제공됩니다. 분실된 키 복구 및 알림을 위한 이메일 주소를 제공하라는 메시지가 표시되며 httphttps 액세스를 모두 활성화하거나 모든 요청을 강제로 리디렉션하도록 선택할 수 있습니다. https로. 암호화되지 않은 http 트래픽이 특별히 필요한 경우가 아니면 일반적으로 https를 요구하는 것이 가장 안전합니다.

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

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

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

3단계 - Certbot 자동 갱신 확인

Let's Encrypt 인증서는 90일 동안만 지속됩니다. 그러나 우리가 설치한 certbot 패키지는 시스템 타이머를 통해 하루에 두 번 certbot renew를 실행하여 이를 처리합니다. 비 시스템 배포판에서 이 기능은 /etc/cron.d에 있는 cron 스크립트에 의해 제공됩니다. 이 작업은 매일 두 번 실행되며 만료 30일 이내의 모든 인증서를 갱신합니다.

갱신 프로세스를 테스트하려면 certbot을 사용하여 시험 실행을 할 수 있습니다.

  1. sudo certbot renew --dry-run

오류가 표시되지 않으면 모든 설정이 완료된 것입니다. 필요한 경우 Certbot은 인증서를 갱신하고 Apache를 다시 로드하여 변경 사항을 적용합니다. 자동 갱신 프로세스가 실패하면 Let’s Encrypt는 지정한 이메일로 메시지를 보내 인증서가 만료될 때 경고합니다.

결론

이 가이드에서는 Apache에서 호스팅되는 웹 사이트를 보호하기 위해 Let’s Encrypt에서 무료 SSL 인증서를 설치하는 방법을 살펴보았습니다. Certbot 클라이언트에 대한 자세한 내용은 공식 Certbot 설명서를 확인하는 것이 좋습니다.