웹사이트 검색

CentOS 8에서 Lets Encrypt SSL 인증서를 사용하여 Apache를 보호하세요.


웹 서버 보안은 항상 웹 사이트를 활성화하기 전에 고려해야 할 주요 요소 중 하나입니다. 보안 인증서는 웹 브라우저에서 웹 서버로 전송되는 트래픽을 보호하는 데 매우 중요하며, 이를 통해 사용자가 전송된 트래픽이 안전하다는 사실을 완전히 알고 웹사이트와 데이터를 교환하도록 유도합니다.

대부분의 경우 보안 인증서는 매년 비용을 지불하고 갱신합니다. Let's Encrypt 인증서는 사이트를 암호화하는 데 사용할 수 있는 무료 개방형 자동 인증 기관입니다. 인증서는 90일마다 만료되며 무료로 자동 갱신됩니다.

권장 읽기: CentOS 8에서 Let’s Encrypt를 사용하여 Nginx를 보호하는 방법

이 문서에서는 Apache 웹 서버에 대해 Certbot을 사용하여 Let's Encrypt Certificate를 설치하고 나중에 인증서를 구성하는 방법을 보여줍니다. CentOS 8에서 자동으로 갱신됩니다.

전제조건

시작하기 전에 다음 사항이 준비되어 있는지 확인하세요.

1. Apache HTTP 웹 서버가 설치되어 실행 중인 CentOS 8 서버의 인스턴스입니다. Apache 웹 서버가 실행 중인지 확인할 수 있습니다.

sudo dnf install httpd
sudo systemctl status httpd

2. DNS 웹 호스팅 제공업체에 있는 웹 서버의 공개 IP 주소를 가리키는 정규화된 도메인 이름(FQDN). 이 가이드에서는 서버의 IP 34.67.63.136을 가리키는 linuxtechwhiz.info를 사용합니다.

1단계. CentOS 8에 Certbot 설치

Certbot은 보안 인증서 설치를 자동화하는 클라이언트입니다. Let’s encrypt Authority에서 인증서를 가져와서 큰 어려움 없이 웹 서버에 배포합니다.

Certbot은 무료이며 웹 서버 구성에 따라 지침을 생성하여 대화형 방식으로 인증서를 설치할 수 있습니다.

certbot을 다운로드하기 전에 먼저 암호화된 연결 구성에 필요한 패키지를 설치하세요.

RHEL 기반 시스템을 위한 고품질 추가 패키지를 제공하는 EPEL 저장소를 설치하는 것부터 시작하겠습니다.

sudo dnf install epel-release

다음으로 mod_sslopenssl 패키지를 설치합니다.

sudo dnf install mod_ssl openssl

모든 종속성이 설치되면 Certbot 및 Certbot용 Apache 모듈을 설치합니다.

sudo dnf install certbot python3-certbot-apache

이 명령은 Certbot, Certbot용 Apache 모듈 및 기타 종속성을 설치합니다.

2단계: Apache 가상 호스트 생성

다음 단계는 우리 도메인에 대한 가상 호스트 파일인 linuxtechwhiz.info를 만드는 것입니다. 먼저 HTML 파일을 배치할 문서 루트를 만드는 것부터 시작하세요.

sudo mkdir /var/www/linuxtechwhiz.info.conf

표시된 대로 테스트 index.html 파일을 만듭니다.

sudo echo “<h1>Welcome to Apache HTTP server</h1>” > /var/www/linuxtechwhiz.info/index.html

다음으로, 그림과 같이 가상 호스트 파일을 생성합니다.

sudo vim /etc/httpd/conf.d/linuxtechwhiz.info

아래 구성을 추가하세요.

<VirtualHost *:443>
  ServerName linuxtechwhiz.info
  ServerAlias www.linuxtechwhiz.info
  DocumentRoot /var/www/linuxtechwhiz.info/
  <Directory /var/www/linuxtechwhiz.info/>
      Options -Indexes +FollowSymLinks
      AllowOverride All
  </Directory>
  ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
  CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined
</VirtualHost>

저장 및 종료.

표시된 대로 문서 루트에 사용 권한을 할당합니다.

sudo chown -R apache:apache /var/www/linuxtechwhiz.info

변경 사항을 적용하려면 Apache 서비스를 다시 시작하십시오.

sudo systemctl restart httpd

3단계: CentOS 8에 Let's Encrypt SSL 인증서 설치

이제 표시된 대로 certbot을 실행하여 Let's Encrypt 인증서 설치를 시작합니다.

sudo certbot --apache -d domain.com

우리의 경우 이는 다음과 같습니다.

sudo certbot --apache -d linuxtechwhiz.info

이 명령은 도메인에 대해 Lets Encrypt를 구성할 수 있도록 일련의 프롬프트를 안내합니다. 이메일 주소를 제공하고, 서비스 약관에 동의하고, HTTP의 암호화된 버전인 HTTPS 프로토콜을 사용하려는 도메인 이름을 지정하십시오.

모든 것이 순조롭게 진행되었다면 마지막에 Let's Encrypt 인증서를 사용하여 사이트가 보호되었음을 알리는 축하 메시지를 받게 됩니다. 인증서의 유효성도 표시됩니다. 이는 일반적으로 배포 후 90일 이후입니다.

이제 가상 호스트 파일로 돌아가서 다음 구성 줄을 추가하세요.

SSLEngine On
 SSLCertificateFile    /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
 SSLCertificateKeyFile  /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem

저장 및 종료.

최종 Apache 가상 호스트 구성은 다음과 같습니다.

<VirtualHost *:443>
  ServerName linuxtechwhiz.info
  ServerAlias www.linuxtechwhiz.info
  DocumentRoot /var/www/linuxtechwhiz.info/
  <Directory /var/www/linuxtechwhiz.info/>
      Options -Indexes +FollowSymLinks
      AllowOverride All
  </Directory>
  ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
  CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined

 SSLEngine On
 SSLCertificateFile    /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
 SSLCertificateKeyFile  /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem
</VirtualHost>

다시 한 번 Apache를 다시 시작하십시오.

sudo systemctl restart httpd

4단계: Let's Encrypt SSL 인증서 확인

모든 것이 작동하는지 확인하려면 브라우저를 시작하고 서버의 IP 주소를 방문하십시오. 이제 URL 시작 부분에 자물쇠 기호가 표시됩니다.

자세한 내용을 보려면 자물쇠 기호를 클릭하고 나타나는 풀다운 메뉴에서 '인증서' 옵션을 클릭하세요.

인증서 세부정보는 다음 팝업 창에 표시됩니다.

또한 https://www.ssllabs.com/ssltest/에서 서버를 테스트할 수 있으며 사이트는 표시된 대로 'A' 등급을 받아야 합니다.

5단계: SSL 인증서 자동 갱신 Let's Encrypt SSL 인증서

Let's Encrypt90일 동안만 유효합니다. 일반적으로 갱신 프로세스는 /etc/cron.d 디렉토리에 갱신 스크립트를 추가하는 certbot 패키지에 의해 수행됩니다. 스크립트는 매일 두 번 실행되며 만료 후 30일 이내에 모든 인증서를 자동으로 갱신합니다.

자동 갱신 프로세스를 테스트하려면 certbot을 사용하여 연습 실행 테스트를 수행하세요.

sudo /usr/local/bin/certbot-auto renew --dry-run

오류가 발생하지 않으면 문제가 없는 것입니다.

이로써 이 가이드가 끝났습니다. 이 가이드에서는 certbot을 사용하여 CentOS 8 시스템에서 실행되는 Apache 웹 서버에 Let's Encrypt 인증서를 설치하고 구성하는 방법을 시연했습니다.