Ubuntu 20.04에서 Let's Encrypt를 사용하여 Nginx 서버를 암호화하는 방법

Ubuntu 20.04에서 Let's Encrypt를 사용하여 Nginx 서버를 암호화하는 방법

2022-06-03 last update

6 minutes reading Nginx
Let's Encrypt라는 인증서 발급 기관은 웹 서버에서 HTTPS를 암호화하는 간단한 방법을 보여 줍니다.Certbot이라고 하는 소프트웨어 클라이언트는 이 프로세스를 자동화하는 데 필요한 절차를 사용합니다.Nginx와 Apache에 인증서를 설치하는 것은 완전히 자동입니다.Ubuntu 20.04에서 무료 SSL 인증서를 사용하여 Nginx 서버를 보호하는 방법을 보여 드리겠습니다.

Nginx 서버 프로필은 일반적인 오류를 방지하는 데 도움이 되고, 기본 프로필을 리셋 옵션으로 유지하는 데 도움이 되기 때문에 서로 다른 Nginx 서버 프로필을 사용할 것입니다.

1단계:


이전과 같이 먼저 APT를 업데이트합니다.
$ sudo apt update

2단계:


이제 APT를 업그레이드합니다.
$ sudo apt upgrade

3단계:


이제 Certbot 소프트웨어 도구를 다운로드하고 설치하면 Let's Encrypt에서 SSL 인증서를 받을 수 있습니다.다음 터미널 명령을 실행하여 APT를 통해 Certbot을 설치합니다.
$ sudo apt install certbot python3-certbot-nginx

이것은certbot을 설치하지만, SSL 인증서에 Ngnix 프로필을 설치해야 합니다.

4단계:


다음 단계를 진행하기 전에 서버 블록을 설정해야 합니다. 만약 여러 사이트를 위탁 관리한다면 이것은 필요한 절차입니다."/var/www"경로에 새 디렉터리를 만들고 기본 디렉터리가 닿지 않도록 합니다.다음 명령을 실행하여 새 디렉터리를 만듭니다.
$ sudo mkdir -p /var/www/example.com/html

단계 5:


이제 다음 터미널 명령을 통해 이 디렉터리에 대한 소유권 권한을 제공합니다.
$ sudo chown -R $USER:$USER /var/www/example.com/html

단계 6:


현재, 아래terminal 명령을 실행하여 권한을 부여할 수 있습니다.
$ sudo chmod -R 755 /var/www/example.com

7단계:


색인을 만듭니다.html 파일은 당신이 가장 좋아하는 텍스트 편집기를 사용합니다. 저는gedit 텍스트 편집기를 사용합니다.
$ sudo gedit /var/www/example.com/html/index.html

이 HTML 파일에 다음 텍스트를 추가합니다.


Welcome to example.com!


성공예제com 서버 블록이 작업 중입니다!


파일을 저장하고 닫습니다.

단계 8:


현재 다음 명령을 실행하여 좋아하는 텍스트 편집기를 사용하여 새 프로필, 즉sitesavailable 디렉터리를 만듭니다.
$ sudo gedit /etc/nginx/sites-available/example.com

현재 이 프로필에 새 디렉터리와 도메인 이름에 다음 텍스트를 추가합니다.
server {
listen 80;
listen [::]:80;

root /var/www/example.com/html;
index index.html index.htm index.nginx-debian.html;

server_name example.com www.example.com;

location / {
try_files $uri $uri/ =404;
}
}

이 파일을 저장하고 닫으면 적용됩니다.

단계 9:


이제 다음 터미널 명령을 사용하여 Nginx에 새 디렉토리를 시작합니다.
$ sudo ln -s /etc/nginx/sites available/example.com /etc/nginx/site-enabled/

단계 10:


서버 이름 해시통 메모리 문제를 피하기 위해 다음 프로필에 값을 입력하십시오.
$ sudo gedit /etc/nginx/nginx.conf
주석을 취소하려면 #sign from hash\u bucket\u size 옵션을 삭제합니다.파일을 저장하고 닫습니다.

11단계:


이제 다음 두 명령을 입력하여 구문 오류를 제거하고 Nginx 서버를 다시 시작합니다.
$ sudo nginx -t

$ sudo systemctl restart nginx

12단계:


이제 Nginx 구성 파일을 확인하고 확인해야 합니다.certbot은 Nginx 설정에서 정확한 서버 블록을 찾아야 하기 때문에 요청한 도메인과 일치하는 서버\u 이름을 찾습니다.이 프로필을 확인하려면 다음terminal 명령을 입력하십시오.
$ sudo nginx -t

13단계:


이제 UFW 방화벽 규칙을 업데이트하여 Nginx가 완전한 권한을 가질 수 있도록 합니다.이전에 HTTP 서버와 관련된 규칙이 있으면 다음 명령을 추가하기 전에 UFW deny 옵션을 사용하여 삭제합니다.
sudo ufw allow ‘Nginx Full’

14단계:


현재,certbot 소프트웨어를 사용하여 SSL 인증서를 설치해야 합니다.다음 터미널 명령을 실행합니다.
$ sudo certbot --nginx -d example.com -d www.example.com

만약certbot을 처음 사용한다면, 시스템은 전자 우편 주소와 조항, 조건 제시를 요구할 것이며, 이렇게 하는 것에 동의할 것입니다. 다음 단계로 넘어갈 수 있습니다.

단계 15:


이제 HTTPS 설정을 구성하고 필요한 옵션을 선택한 다음 Enter 버튼을 클릭하여 계속하라는 메시지가 표시됩니다.Certbot은 필요한 모든 인증서를 설치하고 Nginx 파일을 업데이트합니다.서버에서 프로세스가 성공했다는 메시지를 다시 불러옵니다.

단계 16:


현재 인증서를 설치했습니다. 인증서가 특정 시간 후에 자동으로 갱신되는지 확인해야 합니다.이 프로세스의 능력을 확보하기 위해 다음 두 개의 터미널 명령을 실행합니다.
$ sudo systemctl status certbot.timer

$ sudo certbot renew --dry-run

결론:


지금까지 우리는 Nginx에서 단독 서버 블록을 구축하는 방법, Let's Encryptcertificate authority 서버에서 인증서를 설치하는 방법, 그리고 인증서를 갱신하는 과정을 소개했다.