Ubuntu 및 Debian에서 무료 Let 's Encrypt SSL 인증서로 Apache를 보호하는 방법


새로 등록 된 도메인 이름이 있고 웹 서버가 귀하가 발급 한 SSL 자체 서명 인증서로 작동합니다. 인증서 생성 오류로 인해 클라이언트가 도메인을 방문하는 동안 골칫거리가되고 있습니까? 예산이 제한되어 있고 신뢰할 수있는 CA에서 발급 한 인증서를 구매할 여유가 없습니까? Let ’s Encrypt 소프트웨어가 등장하여 하루를 절약 할 수 있습니다.

RHEL, CentOS, Fedora 또는 Ubuntu 및 Debian에 Apache 또는 Nginx 용 Let ’s Encrypt를 설치하려는 경우 아래 가이드를 따르세요.

Let ’s Encrypt는 서버를 안전하게 실행하는 데 필요한 무료 SSL/TLS 인증서를 획득하는 데 도움이되는 인증 기관 (CA)으로, 오류없이 사용자가 원활하게 탐색 할 수 있도록합니다.

인증서를 생성하는 데 필요한 모든 단계는 대부분 Apache 웹 서버에 대해 자동화되어 있습니다. 그러나 웹 서버 소프트웨어에도 불구하고 일부 단계를 수동으로 수행해야하며 특히 웹 사이트 콘텐츠가 Nginx 데몬에서 제공되는 경우 인증서를 수동으로 설치해야합니다.

이 가이드는 Ubuntu 또는 Debian에 Let ’s Encrypt 소프트웨어를 설치하는 방법, 도메인 용 무료 인증서를 생성 및 얻는 방법, Apache 및 Nginx 웹 서버에 인증서를 수동으로 설치하는 방법을 안내합니다.

  1. A public registered domain name with valid A records to point back to your server external IP Address. In case your server is behind a firewall take the necessary measures to ensure that your server is word-wide accessible from internet by adding port forward rules on the router side.
  2. Apache web server installed with SSL module enabled and virtual hosting enabled, in case you host several domains or subdomains.

1 단계 : Apache 설치 및 SSL 모듈 활성화

1. 컴퓨터에 Apache 웹 서버가 아직 설치되어 있지 않은 경우 다음 명령을 실행하여 apache 데몬을 설치합니다.

$ sudo apt-get install apache2

2. Ubuntu 또는 Debian에서 Apache 웹 서버에 대한 SSL 모듈 활성화는 매우 간단합니다. 아래 명령을 실행하여 SSL 모듈을 활성화하고 Apache 기본 SSL 가상 호스트를 활성화하십시오.

$ sudo a2enmod ssl
$ sudo a2ensite default-ssl.conf
$ sudo service apache2 restart
or
$ sudo systemctl restart apache2.service

방문자는 이제 HTTPS 프로토콜을 통해 도메인 이름에 액세스 할 수 있습니다. 그러나 서버 자체 서명 인증서는 신뢰할 수있는 인증 기관에서 발급하지 않았기 때문에 아래 이미지와 같이 브라우저에 오류 경고가 표시됩니다.

https://yourdomain.com

2 단계 : 무료 Let ’s Encrypt Client 설치

3. 서버에 Let ’s Encrypt 소프트웨어를 설치하려면 시스템에 git 패키지가 설치되어 있어야합니다. 다음 명령을 실행하여 git 소프트웨어를 설치하십시오.

$ sudo apt-get -y install git

4. 다음으로 시스템 계층 구조에서 Let ’s Encrypt git 저장소를 복제 할 디렉토리를 선택합니다. 이 자습서에서는 Let ’s Encrypt의 설치 경로로 /usr/local/ 디렉터리를 사용합니다.

/usr/local 디렉토리로 전환하고 다음 명령을 실행하여 letsencrypt 클라이언트를 설치하십시오.

$ cd /usr/local
$ sudo git clone https://github.com/letsencrypt/letsencrypt

4 단계 : Apache 용 SSL 인증서 생성

5. Apache 용 SSL 인증서를 얻는 프로세스는 Apache 플러그인 덕분에 자동화됩니다. 도메인 이름에 대해 다음 명령을 실행하여 인증서를 생성하십시오. 도메인 이름을 -d 플래그에 매개 변수로 제공하십시오.

$ cd /usr/local/letsencrypt
$ sudo ./letsencrypt-auto --apache -d your_domain.tld

예를 들어 여러 도메인 또는 하위 도메인에서 작동하는 데 인증서가 필요한 경우 기본 도메인 이름 뒤에 유효한 각 추가 DNS 레코드에 대해 -d 플래그를 사용하여 모두 추가합니다.

$ sudo ./letsencrypt-auto --apache -d your_domain.tld  -d www. your_domain.tld 

6. 라이센스에 동의하고 복구 할 이메일 주소를 입력하고 클라이언트가 HTTP 프로토콜 (보안 및 비보안)을 모두 사용하여 도메인을 탐색 할 수 있는지 또는 모든 비보안 요청을 HTTPS로 리디렉션 할 수 있는지 여부를 선택합니다.

7. 설치 프로세스가 성공적으로 완료되면 아래 스크린 샷에 설명 된대로 만료 날짜 및 구성 테스트 방법을 알려주는 축하 메시지가 콘솔에 표시됩니다.

이제 간단한 디렉토리 목록으로 /etc/letsencrypt/live 디렉토리에서 인증서 파일을 찾을 수 있습니다.

$ sudo ls /etc/letsencrypt/live

8. 마지막으로 SSL 인증서의 상태를 확인하려면 다음 링크를 방문하십시오. "그에 따라 도메인 이름을 바꿉니다.

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

또한 방문자는 이제 웹 브라우저에 오류가 표시되지 않고 HTTPS 프로토콜을 사용하여 도메인 이름에 액세스 할 수 있습니다.

4 단계 : 자동 갱신으로 인증서 암호화 가능

9. 기본적으로 Let ’s Encrypt 기관에서 발급 한 인증서는 90 일 동안 유효합니다. 만료일 전에 인증서를 갱신하려면 이전과 같이 정확한 플래그와 매개 변수를 사용하여 클라이언트를 수동으로 다시 실행해야합니다.

$ sudo ./letsencrypt-auto --apache -d your_domain.tld

또는 여러 하위 도메인의 경우 :

$ sudo ./letsencrypt-auto --apache -d your_domain.tld  -d www. your_domain.tld

10. 인증서 갱신 프로세스는 Linux 일정 cron 데몬을 사용하여 만료일 전 30 일 이내에 실행되도록 자동화 할 수 있습니다.

$ sudo crontab -e

한 줄만 사용하여 crontab 파일 끝에 다음 명령을 추가합니다.

0 1 1 */2 * cd /usr/local/letsencrypt && ./letsencrypt-auto certonly --apache --renew-by-default --apache -d domain.tld >> /var/log/domain.tld-renew.log 2>&1

11. Let ’s Encrypt 소프트웨어의 갱신 도메인 구성 파일에 대한 세부 정보는 /etc/letsencrypt/renewal/ 디렉토리에서 찾을 수 있습니다.

$ cat /etc/letsencrypt/renewal/caeszar.tk.conf

Apache 웹 서버에 대한 새 SSL 구성 파일을 보려면 /etc/letsencrypt/options-ssl-apache.conf 파일도 확인해야합니다.

12. 또한 Let ’s encrypt apache plugin은 웹 서버 구성의 일부 파일을 수정합니다. 수정 된 파일을 확인하려면 /etc/apache2/sites-enabled 디렉토리의 내용을 나열하십시오.

# ls /etc/apache2/sites-enabled/
# sudo cat /etc/apache2/sites-enabled/000-default-le-ssl.conf

지금은 여기까지입니다! "다음 자습서 시리즈에서는 Ubuntu 및 Debian 및 CentOS에서도 Nginx 웹 서버용 Let ’s Encrypt 인증서를 얻고 설치하는 방법에 대해 설명합니다.